我想应用重写规则来实现这一点。
current url : http://localhost/mysite/?userlogin
rewrite url : http://localhost/mysite/userlogin
我希望当用户打开http://localhost/mysite/userlogin此网址时,用户必须查看http://localhost/mysite/?userlogin此网址。
[注意]:当前网址现在正在运行..但我在重写网址上找不到对象。
提前致谢。
答案 0 :(得分:1)
您可以使用以下内容在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
注意:要使用上述解决方案,您需要启用.htaccess模块 在Apache2中。
在 apache2> sites-available> default 或 apache2> sites-available> your_config ,将AllowOverride设置为“全部”:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
注意:(根据您现有的代码编辑上面的代码。)
您需要将这些行添加到您的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;
}
您需要使用这些规则添加web.config(我建议在IIS控制面板中使用URLRewrite 2.0来添加这些规则
<rule name="rule 1Z">
<match url="(.*)" />
<action type="Rewrite" url="/index.php?p={R:1}" appendQueryString="true" />
</rule>