Mod在某些情况下重写

时间:2015-05-28 07:18:56

标签: regex apache .htaccess mod-rewrite url-rewriting

我的网站有以下结构

/index.php
/anotherpage.php
/login/
/view/

我在/ view /目录中设置了一个mod重写,以便可以从/ view / aBc123

访问/ view /?id = aBc123

但是我想要实现的是一种能够在不打扰网站其他部分的情况下从该URL中删除/ view /的方法。

以便URL看起来像

domain.com/aBc123 

但是以下不受影响

domain.com/index.php
domain.com/anotherpage.php
domain.com/login
domain.com/view

请注意,实际网站上有更多合法的目录和文件,只是将这些作为我希望继续工作的方案示例。

所以场景是当它不是.php文件而不是合法目录时将其视为ID。

我正在尝试找出这个场景的mod重写是什么

1 个答案:

答案 0 :(得分:1)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On
RewriteBase /

# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((?!view/).*) view/$1 [L,NC]