我有文件夹和另一个带有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语言的专家,我无法使上述代码工作。
欢迎您提出意见:)
答案 0 :(得分:0)
你不能在你的规则的正则表达式中拥有这样的内容:http://www.%{HTTP_HOST}/
。正则表达式匹配的字符串不包含协议/域名,只是 URI,所以只有/cakedetails
部分。
问题在于你不想盲目地匹配所有内容,因此你需要一些条件来确保某人不会请求现有文件。
尝试:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ /cakes.php?id=$1 [L,QSA]