【问题标题】:.htaccess rewriterule not working for single page.htaccess rewriterule 不适用于单页
【发布时间】:2012-12-23 07:52:14
【问题描述】:

我有几页:

http://waleyqiao.com/about/
http://waleyqiao.com/index/
http://waleyqiao.com/contact/
http://waleyqiao.com/blog/
http://waleyqiao.com/portfolio/

真正的页面是 waleyqiao.com/about.html

htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^/]+)/$ $1.html 

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

由于某种原因,waleyqiao.com/portfolio/ 似乎不起作用,但 waleyqiao.com/portfolio.html 确实...

【问题讨论】:

    标签: .htaccess mod-rewrite redirect subdomain


    【解决方案1】:

    这是因为您在 URI 末尾添加了 .html:

    /portfolio/.html
    

    这显然不存在。您需要创建一个没有斜杠的分组。试试这个:

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} ^/(.*?)/?$
    RewriteCond %{DOCUMENT_ROOT}/%1\.html -f
    RewriteRule ^ /%1.html 
    

    对于 php 扩展也是如此:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-09
      • 1970-01-01
      • 2016-09-05
      • 2019-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多