【问题标题】:htaccess rewrite urls - how do i write the urls in my code?htaccess 重写网址 - 我如何在我的代码中编写网址?
【发布时间】:2011-05-23 08:01:46
【问题描述】:
使用 apache/.htaccess 重写引擎:
如果我想更改像
这样的网址
www.foo.com/mypage.php?var=abc&var2=123
到
www.foo.com/abc/123
我是否需要在我的 PHP 文件中手动重写我的 URL,或者这也需要处理?
即,将我的代码 更改为
mod_rewrite 会为我处理这个吗?还是它只是翻译它接收到的 URL,并没有真正根据 .htaccess 文件中的规则重写生成的 HTML?
【问题讨论】:
标签:
php
apache
.htaccess
mod-rewrite
【解决方案1】:
是的,你必须改变它。
Mod rewrite 仅在内部重定向请求。它改变了对您的应用程序可见的 HTTP 标头,但您仍然可以通过附加的附加标头字段来重现原始 url。它不会修改您发送的任何内容。
【解决方案2】:
如果您有服务器 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。
任何的cmet,请告诉我。