我的mod_rewrite规则没有按预期重写

时间:2014-07-23 20:57:40

标签: php .htaccess mod-rewrite pretty-urls

在S.O.找不到答案。 (对不起,如果重复)

[本地主机] /MySites/.htaccess:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) compiler.php?id=$1

//localhost/MySites/Example.com/的请求适用于我的浏览器。

请求//localhost/MySites/Example.com(没有尾随斜杠“/”)重定向(地址栏实际更改)到//localhost/MySites/Example.com/?id=Example.com,结尾为/?id=Example.com

为什么这样做?击败“漂亮网址”的目的。

1 个答案:

答案 0 :(得分:2)

您可以使用:

DirectorySlash Off 
DirectoryIndex index.php index.html 
RewriteEngine on 
RewriteBase /MySites/ 

# add a trailing slash for directories 
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) compiler.php?id=$1 [L,QSA]