使用apache / .htaccess RewriteEngine:
如果我想更改网址
www.foo.com/mypage.php?var=abc&var2=123
到
www.foo.com/abc/123
我是否需要手动重写我的PHP文件中的URL,还是需要处理?
即改变我的代码< a href =“mypage.php?var = abc& var2 = 123”>至< a href =“abc / 123”>
mod_rewrite会为我处理这个吗?或者它只翻译它收到的URL,而不是实际根据.htaccess文件中的规则重写生成的HTML?
答案 0 :(得分:1)
如果您具有服务器httpd配置访问权限,则可以将以下代码放在服务器apache服务器配置中或放入您的httaccess文件中
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /mypage.php [L]
</IfModule>
并将以下代码放在mypage.php文件顶部,
$Get_data = explode('/', $_SERVER[REQUEST_URI]);
$_GET['var'] = $Get_data[1];
$_GET['var2'] = $Get_data[2];
现在,当您使用这些www.foo.com/mypage.php?var=abc&var2=123时得到相同的结果 网址或这些www.foo.com/abc/123网址。
如有任何意见,请告诉我。
答案 1 :(得分:0)
是的,你必须改变它。
Mod重写仅在内部重定向请求。它会改变应用程序可见的HTTP标头,但您仍然可以通过其他标题字段重现原始URL。它不会修改您发送的任何内容。