[英]htaccess rewrite urls - how do i write the urls in my code?
使用apache / .htaccess RewriteEngine:
如果我想更改一个URL
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?
如果您具有服务器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 url或这些www.foo.com/abc/123 url时,您将获得相同的结果。
有任何意见,请让我知道。
是的,您必须更改它。
Mod重写仅在内部重定向内部请求。 它更改了应用程序可见的HTTP标头,但您仍然可以通过附加的标头字段来重现原始url。 它不会修改您发送的任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.