我最近在我的网站root中添加了一个.htaccess文件,以便实现我在此问题中已经提出的问题:
现在,最好的答案是精彩的,它适用于localhost,但是在我的服务器上却没有。
老实说,我不太确定.htaccess中的这些陈述究竟是什么意思。如果有人能够逐行解释,我将不胜感激。
所以这就是我所拥有的
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
答案 0 :(得分:1)
<IfModule mod_rewrite.c> # If the module for rewrite is available
RewriteEngine On # turn it on
RewriteBase / # set / to the relative root path
RewriteRule ^index\.php$ - [L] # don't rewrite index.php and stop the rest of the rules
RewriteCond %{REQUEST_FILENAME} !-f # if file does not exist
RewriteCond %{REQUEST_FILENAME} !-d # and file is not a directory
RewriteRule . /index.php [L] # show the index page instead
</IfModule> # close the IfModule clause
我怀疑它是否在您的服务器上不起作用,没有为域或服务器配置正确设置根目录。您需要查看文件的放置位置以及如何配置httpd.conf以使用这些路径。
另外,下次Apache在这个模块上有一个wonderful documentation,它应该涵盖我刚才所说的所有内容。
答案 1 :(得分:0)
实际问题是我的虚拟主机上没有启用重写。 所以我在虚拟主机中启用了它,现在一切正常。
<VirtualHost *>
ServerName mysite.com
DocumentRoot /var/www/html/mysite.com
<Directory /var/www/html/mysite.com>
Options FollowSymLinks
AllowOverride all
</Directory>
</VirtualHost>