需要你的帮助。只是花了很多我们的htaccess问题仍然没有线索如何管理它。
我公司网站上有很多http://www.example.com/menu-alias/foo个链接,应该重定向到http://www.example.com/foo。
仅此一点不应该是困难的部分,而是倾听......这个棘手的部分随之而来。
我没有设法让网站(Joomla 1.5)在没有'menu-alias'的情况下工作,这意味着所有http://www.example.com/foo应该内部映射到http://www.example.com/menu-alias/foo。这样用户的浏览器地址栏中仍然有http://www.example.com/foo。
为了使它更复杂,我必须将旧的menu-alias / foo链接重定向到/ foo。
一些htaccess大师可以帮助我吗?这甚至可能吗?
答案 0 :(得分:0)
您可以尝试在文档根目录(或vhost配置)的htaccess文件中添加这些规则:
RewriteEngine On
# externally redirect requests that have "menu-alias"
RewriteCond %{THE_REQUEST} /menu-alias/([^\ \?]+)
RewriteRule ^ /%1 [L,R=301]
# internally rewrite requests back to menu-alias
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/menu-alias/
RewriteRule ^/?(.*)$ /menu-alias/$1 [L]
一些潜在的问题:
$_SERVER
中查找原始未重写的请求,如果是这样,重写将无效。/menu-alias/
添加回URI的规则会盲目地重写所有未指向现有资源的请求。这意味着Joomla可以处理的“虚拟”路径将在前面附加一个“菜单别名”。