htaccess添加更多重定向并隐藏扩展名

时间:2015-04-11 16:50:08

标签: php apache .htaccess mod-rewrite redirect

大家好我将这个htaccess文件放到我的public_html文件夹中,我想要更多重定向

htaccess的代码

RewriteEngine On
 RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.*$ [NC] 
  RewriteRule \.(gif|jpg|jpeg)$ http://www.domain.com [L]
   RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
       ErrorDocument 404 /error404.php
       ErrorDocument 403 /error404.php
      Options -Indexes 

      RewriteCond %{THE_REQUEST} \s/+page1\.php\?url=([^\s&]+) [NC]
     RewriteRule ^ /%1? [R=301,L]
      RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule ^(.+)$ /page1.php?url=$1 [L,QSA]

页面将所有page1.php?url = abc重定向到domain / abc 但现在我需要将所有请求重定向到page2.php?id = 78到domain / page2 / 78

如果可能还隐藏了我网站上的所有.php扩展名我不知道htaccess ..请帮我理解代码

1 个答案:

答案 0 :(得分:1)

您可以使用:

ErrorDocument 404 /error404.php
ErrorDocument 403 /error404.php
Options -Indexes 
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_METHOD} POST [NC]
RewriteRule ^ - [L]

RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.*$ [NC] 
RewriteRule \.(gif|jpg|jpeg)$ http://www.domain.com [L]

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{THE_REQUEST} \s/+(page2)\.php\?id=(\d+)[&\s] [NC]
RewriteRule ^ /%1/%2? [R=301,L]
RewriteRule ^(page2)/(\d+)$ /$1.php?id=$2 [L,QSA,NC]

RewriteCond %{THE_REQUEST} \s/+page1\.php\?url=([^\s&]+) [NC]
RewriteRule ^ /%1? [R=301,L]

RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=302,L,NE]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /page1.php?url=$1 [L,QSA]