尝试使用htacess将我的网址http://givehands.co.in/post.php?p=post&id=1
重写为http://givehands.co.in/post/1/
。
但它被重定向到网址http://givehands.co.in/post.php?p=post&id=1
而不是重写它?我的域名发送被映射到我的网络服务器的子目录。
任何人都可以帮我解决正确的重写规则吗?我对此很新。
Options -Multiviews
RewriteEngine On # Turn on the rewriting engine
RewriteBase /
RewriteCond %{REQUEST_URI} post/(.*)
RewriteRule post/(.*)/ http://givehands.co.in/post.php?p=post&id=$1 [L]
RewriteCond %{REQUEST_URI} post/
RewriteRule post/ http://givehands.co.in/post.php [L]
答案 0 :(得分:1)
您的重定向规则中似乎有一个完整的网址:
RewriteCond %{REQUEST_URI} post/
RewriteRule post/ http://givehands.co.in/post.php [L]
在其中放置完整的URL会强制Apache重定向浏览器而不是重写它。如果givehands.co.in是您正在托管的域名,请尝试将其更改为:
RewriteCond %{REQUEST_URI} post/
RewriteRule post/ /post.php [L]
如果givehands.co.in不在您的服务器上,或者在不同的VirtualHost下,那么†无法“重写”该URL,您必须重定向浏览器(这就是为什么Apache会带头为你做这件事。)
†你实际上可以设置一个反向代理来做这样的事情,但这可能是另一个讨论的主题:)