【发布时间】:2011-02-27 19:43:44
【问题描述】:
我的主目录中有这个结构:
- /index.php
- /.htaccess
- /文件夹x/
- /folderx/子文件夹/
- /folderx/subfolder/file.php
我需要的是将所有带有前缀“folderx_”的请求修改为真正的folderx目录。但另外,我需要强制重定向 - 用户不应该直接请求 /folderx/subfolder/subsubfolder/file.php 。它应该被重定向到 mod_rewrite url:/folderx_subfolder/subsubfolder/file.php
- /folderx_subfolder/ => /folderx/subfolder/
- /folderx_subfolder/file.php => /folderx/subfolder/file.php
- /folderx_subfolder/subsubfolder/ => /folderx/子文件夹/子子文件夹/
- /folderx_subfolder/subsubfolder/file.php => /folderx/subfolder/subsubfolder/file.php
我已尝试以下代码,但重定向无法正常工作。请求子文件夹时,它重定向到前缀,但我不知道如何防止循环(请帮助! /folderx/子文件夹/子子文件夹/file.php
RewriteCond %{REQUEST_URI} ^/folderx/(.*)$
RedirectMatch ^/folderx/(.*)$ /folderx_$1
RewriteRule ^folderx_([a-z]{3,15})(/?)+$ /folderx/$1/ [NC]
RewriteRule ^folderx_([a-z]{3,15})/(.*)$ /folderx/$1/$2 [NC]
【问题讨论】:
标签: apache .htaccess mod-rewrite apache2