htaccess重写网址 - 如何在我的代码中编写网址?

时间:2010-12-10 07:12:13

标签: php apache .htaccess mod-rewrite

使用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?

2 个答案:

答案 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。它不会修改您发送的任何内容。