我目前安装了SocialEngine,所有网址都由.htaccess文件处理,重定向到 socialengine.php 文件并处理好网址等。
我想阻止example.com/
重定向到脚本,因为我想在那里放一个不同的索引页面。所以我希望我的.htaccess文件能够处理它无法通过 socialengine.php 脚本找到的所有其他文件,但保留根文件到 index.php 。
所以如果它是.com/
它会转到 index.php ,如果它是其他任何东西,它将通过 socialengine.php 进行处理。
以下是我的.htaccess文件,需要更改。
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
# Get rid of index.php
RewriteCond %{REQUEST_URI} /socialengine\.php
RewriteRule (.*) socialengine.php?rewrite=2 [L,QSA]
# Rewrite all directory-looking urls
RewriteCond %{REQUEST_URI} /$
RewriteRule (.*) socialengine.php?rewrite=1 [L,QSA]
# Try to route missing files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} public\/ [OR]
RewriteCond %{REQUEST_FILENAME} \.(jpg|gif|png|ico|flv|htm|html|php|css|js)$
RewriteRule . - [L]
# If the file doesn't exist, rewrite to index
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ socialengine.php?rewrite=1 [L,QSA]
</IfModule>
提前感谢您的回复。
答案 0 :(得分:2)
在RewriteEngine On
之后将代码放在下面。
RewriteCond %{REQUEST_URI} ^/$
RewriteRule .* - [L]
说明:第一行与http://example.com/的请求匹配(在这种情况下REQUEST_URI包含/
)。第二行不接受请求(请注意-
)
参考文献:
http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule