htaccess和文件夹会影响吗?

时间:2015-03-31 16:24:13

标签: apache .htaccess redirect

我有文件夹和另一个带有id的php文件。 我想要做的是能够以下列格式查看这些php文件: www.website.com/cakedetails 在浏览器网址和网站范围内,而不是www.website.com/cakes .php?id = chocolate-cake

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^http://www.%{HTTP_HOST}/([a-z.*0-9_-]+)/$ http://www.%{HTTP_HOST}/cakes.php?id=$1

我设法将上述内容放在我的htaccess文件中,但到目前为止无济于事。代码的第一部分转换为www。如果它没有该前缀,并且代码的第二部分用于收集蛋糕细节。

你能告诉我上面的代码是否正确,因为我不是htaccess语言的专家,我无法使上述代码工作。

欢迎您提出意见:)

1 个答案:

答案 0 :(得分:0)

你不能在你的规则的正则表达式中拥有这样的内容:http://www.%{HTTP_HOST}/。正则表达式匹配的字符串不包含协议/域名,只是 URI,所以只有/cakedetails部分。

问题在于你不想盲目地匹配所有内容,因此你需要一些条件来确保某人不会请求现有文件。

尝试:

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