繁体   English   中英

重定向网址的重写规则

[英]Rewrite rule for redirect url

我想应用重写规则来实现此目的。

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

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

我想做的事情是,当任何用户打开此URL的http:// localhost / mysite / userlog时,此时用户必须获取此URL的http:// localhost / mysite /?userlog的视图。

[注意]:当前的URL现在正在工作。但是我在重写的URL上找不到Object。

提前致谢。

如果您使用的是Apache服务器

您可以使用以下内容在Web应用程序根目录中创建.htaccess:

RewriteEngine on

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

如果您的根文件夹上有多个站点,则如下所示:
|
| _ web1
| _ web2
| _ web3

您只需要向要启用重写规则的文件夹中添加.htaccess文件,例如:
|
| _ web1 | __ .htaccess
| _ web2
| _ web3

注意:要使用上述解决方案,您需要在Apache2中启用.htaccess模块​​。
在您的apache2> sites-available> defaultapache2> sites-available> your_config中 ,将AllowOverride设置为“ All”:

<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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM