我正在重写url字符串的第一个目录,并让请求的其余部分仍然有效。重写1级url目录
如:我想它所以当用户点击该链接为:/products/category/item.php
它实际上抓住的文件:/shop/category/item.php
但仍显示为/products/category/item.php
的URL
这将是动态的,所以它应该是这样的/products/$
/shop/$1
我在猜测。
我正在重写url字符串的第一个目录,并让请求的其余部分仍然有效。重写1级url目录
如:我想它所以当用户点击该链接为:/products/category/item.php
它实际上抓住的文件:/shop/category/item.php
但仍显示为/products/category/item.php
的URL
这将是动态的,所以它应该是这样的/products/$
/shop/$1
我在猜测。
你不需要mod_rewrite的。 when to avoid mod_rewrite。
将url目录映射到文件目录是Apache通过模式处理的基本功能mod_alias(这相当肯定已经为您提供)。
所以基本上你有Alias和AliasMatch指令。在你的情况下,第一个就足够了:
Alias /products/ /path/to/web/document/root/shop/
的映射过程仅服务器端,以便最终用户看到的网址是永远不会改变。
试试这个:
RewriteEngine On
RewriteRule ^products/(.*) shop/$1 [L]
启用mod_rewrite的,并通过httpd.conf
的.htaccess,然后把这个代码在你.htaccess
下DOCUMENT_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]