【问题标题】:htaccess add some more redirects and also hide extentionshtaccess 添加更多重定向并隐藏扩展
【发布时间】:2015-04-11 16:50:08
【问题描述】:

大家好,我有这个 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 .. 请帮助我理解代码

【问题讨论】:

    标签: php apache .htaccess mod-rewrite redirect


    【解决方案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]
    

    【讨论】:

    • 先生,我是否必须从我的页面链接中删除扩展,就像我必须将锚链接 href='pahe.php' 更改为 href='page' ???
    • 好的先生,实际上代码非常好,而且效果很好,但唯一的问题是在我更新我的 htaccess 文件后某些表单提交不起作用.. 我只是想知道我是否必须更改更新我的 htaccess 文件后还有什么......所有表单都是由 ajax 提交的,并且有一个 url 我认为这可能是一个问题??
    • 但是页面 page2.php?id=43 重定向到 page2?id=43 我想要 page2/id/43 你可以这样做吗??
    猜你喜欢
    • 2011-11-14
    • 2013-10-13
    • 2014-04-10
    • 2017-01-29
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    相关资源
    最近更新 更多