我有以下重写规则:
第一条规则:
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1\.php
第二条规则:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+/.+)$ module.php?page=$1 [L,QSA]
第一条规则允许我将/myscript.php作为myscript
访问第二个规则允许我在mydomain.com/之后获取所有内容并将其转换为查询字符串以加载module.php?page = querystring。
但是,对于第一条规则,如果我要访问/ myscript / myscript,那么我会收到内部服务器错误。此外,我似乎无法在相同的代码中运行规则1和2。因为它似乎有冲突。如果我去mydomain.com/myscript/myscript它似乎干扰myscript.php我最终得到一个结果页面= myscript / myscript.php / myscript
关于如何将两者结合起来的任何建议?
感谢。
答案 0 :(得分:0)
有这样的话:
Options -MultiViews
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/?$ module.php?page=$1 [L,QSA]