好的,我已经使用PHP和MySql在Apache本地主机上成功运行了。现在我想使用.htaccess
文件并使用RewriteRule
,但我不知道把它放在哪里。
我有以下目录:
C:\dev\progs
存储着 Apache PHP 和 MySQL,每个都有自己的子目录,例如 C:\dev\progs\Apache
等等...
C:\dev\www
存储所有站点文件。
我需要知道在哪里放置.htaccess
文件,需要进行什么配置,以及我的希望是否能够实现。
谢谢
好的,我已经使用PHP和MySql在Apache本地主机上成功运行了。现在我想使用.htaccess
文件并使用RewriteRule
,但我不知道把它放在哪里。
我有以下目录:
C:\dev\progs
存储着 Apache PHP 和 MySQL,每个都有自己的子目录,例如 C:\dev\progs\Apache
等等...
C:\dev\www
存储所有站点文件。
我需要知道在哪里放置.htaccess
文件,需要进行什么配置,以及我的希望是否能够实现。
谢谢
在本地Apache服务器上启用.htaccess
1) Find your apache directly which uses the php installation .
2) Open your httpd.conf with notepad, Which is located in the path \apache\conf directory
3) Find the code like below
#LoadModule rewrite_module modules/mod_rewrite.so
4) Remove # from above code
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All <--- make sure this is not set to "None"
5) Save httpd.conf file
6) Restart your apache server
httpd.conf
文件。 - NewBee.htaccess是一个配置文件,应存储在您的页面所在的位置。简而言之,它应该是在 c:\dev\www 中,在您的情况下,但您也应该阅读此文档。顺便提一句,别忘了通过从包含它的行中删除哈希来启用mod_rewrite。
LoadModule rewrite_module modules/mod_rewrite.so
通过更改配置文件启用.htaccess
AllowOverride None
到
AllowOverride All
尝试一下。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /projectfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /projectfolder/index.php [L]
</IfModule>
.htaccess
文件放置在你想要控制的网站目录中(包括任何子目录)。对于 Rewrite,它通常放在根目录,并作用于 index.php 页面。.htaccess
文件放在 \dev\www\ 目录中,而你的 .htaccess
文件有像 RewriteRule ^(.*)$ /index.php?/$1 [L]
这样的内容,这是一个正则表达式,它表示获取 URL 中的所有字符并将它们附加到 /index.php?
脚本中。/$1
是正则表达式中的反向引用。
.htaccess
配置。在这种情况下,您可以直接修改服务器配置文件。 - SeinopSys.htaccess
文件的教程。 - KFox