2015-03-31 86 views
0

我有文件夹和另一个PHP文件与ID。 我想要做的是能够以下列格式查看这些php文件:www.website.com/cakedetails在浏览器网址和网站范围内而不是www.website.com/cakes.php?id =巧克力蛋糕htaccess和文件夹会影响它吗?

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

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

问题在于你不想盲目地匹配所有东西,所以你需要一些条件来确保某人不请求现有文件。

尝试:

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