多个参数的多次重写条件

时间:2013-04-20 21:48:29

标签: .htaccess redirect seo

我的设置中的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]

这对我有意义,因为我认为如果条件不匹配,它会继续,但这给了我一个内部服务器错误。

1 个答案:

答案 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文件。就我而言,我必须用完整的网站路径替换所有相对路径,具体取决于您设置网站的方式,可能需要一段时间才能更换。