2012-12-10 87 views
0

我正在重写url字符串的第一个目录,并让请求的其余部分仍然有效。重写1级url目录

如:我想它所以当用户点击该链接为:/products/category/item.php 它实际上抓住的文件:/shop/category/item.php但仍显示为/products/category/item.php的URL

这将是动态的,所以它应该是这样的/products/$/shop/$1我在猜测。

回答

2

你不需要mod_rewrite的。 when to avoid mod_rewrite

将url目录映射到文件目录是Apache通过模式处理的基本功能mod_alias(这相当肯定已经为您提供)。

所以基本上你有AliasAliasMatch指令。在你的情况下,第一个就足够了:

Alias /products/ /path/to/web/document/root/shop/ 

的映射过程仅服务器端,以便最终用户看到的网址是永远不会改变。

1

试试这个:

RewriteEngine On 
RewriteRule ^products/(.*) shop/$1 [L] 
1

启用mod_rewrite的,并通过httpd.conf的.htaccess,然后把这个代码在你.htaccessDOCUMENT_ROOT目录:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^products/(.+)$ /shop/$1 [L,NC]