好吧,我有一个Apache服务器,本地主机并用PHP和MySQL运行。 现在,我希望能够使用.htaccess
文件,以及使用RewriteRule
,但我不知所措我把它放在哪里。
我有以下目录:
C:\dev\progs
地方阿帕奇PHP和MySQL存储,各自在自己的子目录,即。 C:\dev\progs\Apache
等等...
C:\dev\www
,所有的网站文件存储。
我需要知道在哪里放置.htaccess
文件,我需要什么样的配置做了,如果我为我的希望和梦想都白费了。
谢谢
htaccess的是,应贮存在您的网页是一个配置文件。 总之,它应该是在c:\dev\www
你的情况,但你应该阅读这太。 BTW不要忘记它驻留从线删除哈希开启了mod_rewrite
LoadModule rewrite_module modules/mod_rewrite.so
并启用了.htaccess通过改变
AllowOverride None
至
AllowOverride All
在本地主机的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
你把.htaccess
你想要的代码来控制web目录(和任何子目录)文件。 对于重写,它通常去的根目录,并在index.php页面的行为。
例如,如果你把.htaccess
文件在\ dev的\ WWW \目录下,你.htaccess
文件有类似RewriteRule ^(.*)$ /index.php?/$1 [L]
这是一个正则表达式是说获得在URL中的所有字符,并把它们添加到/index.php?
脚本。 该/$1
是一个正则表达式反向引用。
试试这个。
<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>