0

我的网站有这样的结构:

index.php
contact/
    index.php
news/
    index.php
admin/
    index.php
    [...]
vip/
    index.php
    [...]

我的问题是我不需要任何包含我的文件夹名称(联系人、新闻、vip、管理员)的重定向。

我想做一个解决方案,让一个人输入您的用户名,如 www.site.com/your_user_name,然后 .htaccess 重定向到 function.php 文件以检查它是否是一个有效的用户名,以便在我的网站中显示额外的内容。

你能帮助我吗?

4

1 回答 1

0

尽管尚不完全清楚您的问题是什么,但您应该意识到您的重写条件仅适用于它之后的重写规则,因此您的文件读取为:

RewriteEngine On


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^vip/$ vip/index.php [QSA]


RewriteRule ^admin/$ admin/index.php [QSA]


RewriteRule ^([^-]+)/$ /initial/function.php?stat=$1&%{QUERY_STRING} [QSA]

您可能希望将条件放在每个重写规则之前:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^vip/$ vip/index.php [QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin/$ admin/index.php [QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^-]+)/$ /initial/function.php?stat=$1 [QSA]

编辑:根据您的评论,您似乎只需要:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^\w+$ /function.php?user_name=$1 [QSA]    // if a username can only contain a-z, 0-9 and _
于 2013-01-14T16:32:27.190 回答