我的设置中的htaccess重写条件存在问题。
目前我有以下代码。
Options +FollowSymLinks RewriteEngine on RewriteCond %{REQUEST_FILENAME}\.php -f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ http://mydom.com/$1.php
这适用于任何基页,使它们看起来像这样。
http://mydom.com/page
我想要做的是添加url中的参数(如果存在)。我有一些页面会像这样。
http://mydom.com/page?param=1&secondParam=2
我试图做的是添加这个。
RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/(.*)/(.*)$ http://mydom/$1/$2/$3 [L] RewriteRule ^(.*)/(.*)$ http://mydom/$1/$2 [L]
这对我有意义,因为我认为如果条件不匹配,它会继续,但这给了我一个内部服务器错误。
答案 0 :(得分:0)
我最终做的是为每个可能有多个参数的页面设置单独的规则。
RewriteCond%{REQUEST_FILENAME} .php -f
RewriteCond%{REQUEST_FILENAME}!-d
RewriteRule ^ page /(。)/(。)$ http://mydom.com/page.php?param= $ 1& secondParam = $ 2 [L]
RewriteRule ^ page /(.*)$ http://mydom.com/page.php?param= $ 1 [L]
RewriteRule ^(。*)$ http://mydom.com/ $ 1.php
这样可行,但您需要记住您的网站中可能包含的相对链接,例如样式表和javascript文件。就我而言,我必须用完整的网站路径替换所有相对路径,具体取决于您设置网站的方式,可能需要一段时间才能更换。