我有一个URL重写设置来创建漂亮的URL
RewriteCond %{REQUEST_URI} !^\/*(index\.php|blog|admin\/assets|site\/assets|robots.txt|sitemap.xml|products.xml|favicon\.ico)
RewriteRule ^(.*)$ /index.php?rq=$1 [L,QSA]
当我使用/admin
访问管理区域时,URL被重写为/admin/?rq=admin
,因为我有一个名为“admin”的根级目录。它可能非常简单,但我如何编辑(或添加)我的.htaccess规则,以便将网址清晰地写为/admin/
更新:
为了澄清,我想使用/index.php?rq=admin
访问/ admin而不是通过调用/admin/index.php
这是我的apache virtualhost config:
<VirtualHost *:80>
ServerAdmin alex
ServerName hub
ServerAlias hub
DocumentRoot /var/www/hub/
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/hub>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
答案 0 :(得分:2)
只需将admin
文件夹添加到RewriteCond
的例外列表中即可。现在,admin/assets
有例外情况,因此您可以删除assets
部分并保留整个admin
文件夹的例外情况,如下所示:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^\/*(index\.php|blog|admin|site\/assets|robots.txt|sitemap.xml|products.xml|favicon\.ico)
RewriteRule ^(.*)$ /index.php?rq=$1 [L,QSA]
答案 1 :(得分:1)
似乎在我的.htaccess中添加DirectorySlash Off
就可以了。不确定这是否是正确的解决方法,但它解决了我的特定问题。我必须确保完全清除缓存以防止缓存重定向(感谢卡米尔)
在Chrome中:Chrome-> Tools -> Clear Browsing Data -> Empty the Cache