【问题标题】:use htaccess to make the rewrite url使用 htaccess 制作重写 url
【发布时间】:2014-11-02 11:21:55
【问题描述】:

大家好,我有一个项目,我需要将此网址 www.domain.com/page.php?brand=abcd 转换为 www.domain.com/abcd

我知道 .htaccess 文件可以做到这一点 目前在我的 htaccess 文件中,我有以下代码

  RewriteEngine On
  RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.*$ [NC] 
  RewriteRule \.(gif|jpg|png)$ 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 

请帮我做这件事,我应该在 .htaccess 文件中添加哪一行来达到目的 我尝试添加

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

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    您的最后一条规则应该适用于/page.php?brand=abcd 的内部重写。

    为了将/page.php?brand=abcd 重定向到/abcd,您可以使用这个新规则:

    # external redirect from actual URL to pretty one
    RewriteCond %{THE_REQUEST} \s/+page\.php\?brand=([^\s&]+) [NC]
    RewriteRule ^ /%1? [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)$ /page.php?brand=$1 [L,QSA]
    

    【讨论】:

    • 是的,您的代码正在运行,但是当我将您的代码添加到我的 htaccess 文件中时,我以前的代码似乎无法正常运行,该站点将重定向 404 错误页面
    • 您仍然需要在 .htaccess 中保留 ErrorDocument 这两行。另外,请尝试在每个线程中保留一个问题。如果此问题已解决,则接受答案并针对不同问题发布新问题。
    • 如果存在,我想将用户定向到 domain.com/abcd,否则将其定向到 404 错误页面。实际上我只能直接访问 domain.com/abcd.php 页面
    • 一旦这个问题得到解决,我会接受这个答案,为什么我的网站以前会重定向到 404 错误页面
    • /abcd 如何成为现有页面?
    【解决方案2】:

    你可以试试这个

      Options +SymLinksIfOwnerMatch
        RewriteEngine On
        RewriteCond %{SERVER_PORT} !=443
        RewriteRule ^ http://litelmaxx.com%{REQUEST_URI} [R,L]
    
    
        Options -Indexes 
    

    【讨论】:

      猜你喜欢
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 2014-12-23
      • 2015-01-25
      相关资源
      最近更新 更多