mod_rewrite维护“更改的URI”

时间:2012-05-08 15:59:11

标签: mod-rewrite

我有一个RewriteRule成功地将我重定向到适当的页面。问题是,当我将鼠标悬停在重定向页面上的链接上时,此页面上任何链接的URL都已更改如下:

更正链接:http://www.mysitelcom/newClients.php

RewriteRule之后的链接:http://www.mysite.com/samples/article-title-goes-here/23/newClients.php它使用samples / article-title-goes-here / 23 /这是我的RewriteRule的模式部分,为下一个文件请求“加前缀”。

我的.htaccess文件是:

# Use PHP5 Single php.ini as default
AddHandler application/x-httpd-php5s .
RewriteEngine on
RewriteBase /
# Do not do anything for already existing files and folders
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^sample/([a-zA-Z0-9-]+)/([0-9]+)$ sample.php?id=$2 [L]

任何人都可以帮助我理解我所缺少的东西吗?不知何故,我必须'重置'我的URI,以便它不会“改变”下一个请求的文件名。谢谢你的任何想法。

1 个答案:

答案 0 :(得分:0)

至于我,我发现,它是我的引擎中的链接和路径的良好解决方案始终正常使用这样:

我的settings.php中定义的全局变量

<?php
    $path_server = 'htdocs/mysite';  # server path for including files
    $path_www = 'http://mysite.com'; # path to use in links
?>

所以在我的模板中(它们与settings.php的范围相同)我写了

<?php include "{$path_server}/menu.php"; ?>
<a href='<?php echo $path_www; ?>/link1.html'>link1</a>