Mod-Rewrite

htaccess - 深度超過 1 級的重定向不起作用

  • June 3, 2010

剛搬到 GoDaddy 上的共享主機,我試圖讓我的 .htaccess 規則正常工作。

這是我所擁有的:

ErrorDocument 404 /error.php
Options FollowSymLinks

RewriteEngine On
RewriteBase /

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

RewriteRule ^view/(\w+)$ viewitem.php?itemid=$1 [R=301,L]
RewriteRule ^category/(\w+)$ viewcategory.php?tag=$1 [R=301,L]

RewriteRule ^faq$ faq.php
RewriteRule ^about$ about.php
RewriteRule ^contact$ contact.php
RewriteRule ^submit$ submit.php
RewriteRule ^contactmsg$ handler-contact.php

所有頁面@域的根似乎都在工作,即 mydomain.org/faq、mydomain.org/about 正在工作。

但是每當我嘗試 mydomain.org/category/somecategory 時,我都會收到 404。如何修復我的 .htaccess 以遵守這些超過 1 級深度的規則?

謝謝,

編輯:我已通過將規則更改為以下內容來修復規則:

RewriteRule ^view/(.*)$ viewitem.php?itemid=$1
RewriteRule ^category/(.*)$ viewcategory.php?tag=$1

任何人都可以確認/否認這是解決此問題的正確方法嗎?

你做的新方法(用(.*))是正確的。

引用自:https://serverfault.com/questions/147903