重定向 URL 的重写规则


Rewrite rule for redirect url

我想应用重写规则来实现这一点。

current url : http://localhost/mysite/?userlogin
rewrite url : http://localhost/mysite/userlogin

我想做,当任何用户 http://localhost/mysite/userlogin 此 url 打开时,此时用户必须查看此 URL http://localhost/mysite/?userlogin。

[注意]:当前网址现在正在工作。但是我在重写网址上找不到对象。

提前谢谢。

如果您使用的是 Apache 服务器

您可以为此在 Web 应用程序根目录中创建包含以下内容的 .htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?p=$1 [QSA]

如果您的根文件夹中有多个站点,如下所示:
|根
|_ 网络1
|_ web2
|_ web3

您只需将 .htaccess 文件添加到要启用重写规则的文件夹中,例如:
|根
|_ 网络1|__ .htaccess
|_ web2
|_ web3

注意:要使用上述解决方案,您需要启用 .htaccess 模块 在阿帕奇2中。
在您的 apache2>sites-available>default 或apache2>sites-available>your_config,将"允许覆盖"设置为"全部":

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

注意:(根据现有代码编辑上面的代码。

如果您使用的是 Nginx 服务器

您需要将这些行添加到您的nginx服务器配置中!

if (!-f $request_filename){
    set $rule_0 1$rule_0;
}
if (!-d $request_filename){
    set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
    rewrite /(.*) /index.php?p=$1;
}

如果您使用的是 Windows IIS 服务器

您需要添加具有这些规则的web.config(我建议使用IIS控制面板中的URLRewrite 2.0来添加这些规则)。

<rule name="rule 1Z">
    <match url="(.*)"  />
    <action type="Rewrite" url="/index.php?p={R:1}"  appendQueryString="true" />
</rule>