【发布时间】:2012-02-11 04:07:27
【问题描述】:
我有一个 mod_rewrite 规则,将 example.com/en/about/topic 更改为 example.com/en/view.php?p=pages/about/topic.php
我的规则是:
RewriteRule ^en/([a-zA-Z0-9/]+)$ en/view.php?p=pages/$1.php
view.php 包含我所有的持久性内容,例如菜单、徽标等,它使用 php 包含来获取 pages/topic.php
它适用于example.com/en/topic -> example.com/en/view.php?p=pages/topic.php,但是当我尝试example.com/en/about/topic -> example.com/en/view.php?p=pages/about/topic.php 时,它会找到view.php 和pages/about/topic.php 并加载它们,但尝试从en/about/... 而不是en/... 加载我所有的css 文件和图像等它对 view.php 和 topic.php 中的图像执行此操作。最令人沮丧的是,如果我在规则中添加 [R],一切正常,但它违背了 SEO 练习的目的!
我整天都在这,但没有运气。虽然我确实发现了 mod_rewrite 日志记录和几个 handy guides。
这是我的日志中针对 example.com/en/test 的内容(有效):
[perdir C:/tt/xampp/htdocs/] 重写 'en/test' -> 'zh/view.php?p=pages/test.php'
[perdir C:/tt/xampp/htdocs/] 去除 document_root 前缀: C:/tt/xampp/htdocs/en/view.php -> /en/view.php
[perdir C:/tt/xampp/htdocs/] 内部重定向与 /en/view.php [内部重定向]
[perdir C:/tt/xampp/htdocs/] 通过 C:/tt/xampp/htdocs/en/view.php
[perdir C:/tt/xampp/htdocs/] 通过 C:/tt/xampp/htdocs/en/base/code/view.css
例如.com/en/about/test(没有)
[perdir C:/tt/xampp/htdocs/] 重写 'en/about/dir/test' -> 'en/view.php?p=pages/about/dir/test.php'
[perdir C:/tt/xampp/htdocs/] 去除 document_root 前缀: C:/tt/xampp/htdocs/en/view.php -> /en/view.php
[perdir C:/tt/xampp/htdocs/] 内部重定向与 /en/view.php [内部重定向]
[perdir C:/tt/xampp/htdocs/] 通过 C:/tt/xampp/htdocs/en/view.php
[perdir C:/tt/xampp/htdocs/] 通过C:/tt/xampp/htdocs/en/about
任何帮助将不胜感激!
【问题讨论】:
-
哦,我只是想 - 我知道我可以将我的图片网址等更改为绝对网址,但我真的不想(很多文件!)
标签: html regex .htaccess mod-rewrite seo