Htaccess问题 - 从漂亮的URL重定向到php版本

时间:2013-07-09 18:03:30

标签: php apache .htaccess

我不是一个新的开发人员并且已经与.htaccess合作多年了,但是今天我完全陷入困境并且不知道发生了什么。以下是我的完整htaccess文件:

Options All -Indexes

ReWriteEngine On

RewriteRule ^page/([a-zA-Z0-9_-]+)$ page.php?pageurl=$1
RewriteRule ^([a-zA-Z0-9_-]+)$ category.php?categoryurl=$1
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([0-9]+)-([a-zA-Z0-9_-]+)$ product.php?category=$1&subcategory=$2&productid=$3&producturl=$4


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

website.com/category应该带我到它所做的类别页面,但由于某种原因,网址被更改,好像htaccess正在反向工作,我被发送到website.com/category.php?categoryurl=类别。

这与其他产品完全相同,我的产品页面应该是website.com/category/subcategory/123-producturl,但它也会重定向:

website.com/product.php/category/123-producturl?category=category&subcategory=subcategory&productid=123&producturl=producturl

任何人都知道为什么这样做是为了什么?

1 个答案:

答案 0 :(得分:0)

尝试这个,你没有添加标志来结束HTACCESS中的行。

Options All -Indexes

ReWriteEngine On

RewriteRule ^page/([a-zA-Z0-9_-]+)$ page.php?pageurl=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)$ category.php?categoryurl=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([0-9]+)-([a-zA-Z0-9_-]+)$ product.php?category=$1&subcategory=$2&productid=$3&producturl=$4 [L]


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