此.htaccess文件的说明

时间:2014-02-11 12:01:34

标签: php regex .htaccess

我最近在我的网站root中添加了一个.htaccess文件,以便实现我在此问题中已经提出的问题:

  
    

Create blog post links similar to a folder structure

  

现在,最好的答案是精彩的,它适用于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>

2 个答案:

答案 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>