12

好的,我用 PHP 和 MySql 启动并运行了 Apache localhost 服务器。现在我也希望能够使用一个.htaccess文件来使用RewriteRule,但是我不知道该把它放在哪里。

我有这些目录:

C:\dev\progsApache PHP 和 MySQL 存储在哪里,每个都在它们自己的子目录中,即。C:\dev\progs\Apache等等...

C:\dev\www存储所有站点文件的位置。

我需要知道将.htaccess文件放在哪里,需要做什么配置,以及我的希望和梦想是否都是徒劳的。

谢谢

4

4 回答 4

15

在 localhost 的 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
于 2014-09-18T06:15:44.743 回答
14

.htaccess 是一个配置文件,应该存储在您的页面所在的位置。简而言之,它应该c:\dev\www在你的情况下,但你也应该阅读这个。顺便说一句,不要忘记通过从它所在的行中删除哈希来打开 mod_rewrite

LoadModule rewrite_module modules/mod_rewrite.so

并通过更改启用 .htaccess

AllowOverride None

AllowOverride All
于 2013-01-23T22:08:50.297 回答
1

您将.htaccess文件放在您希望代码控制的 Web 目录(以及任何子目录)中。对于重写,它通常进入根目录并作用于 index.php 页面。

例如,如果您将.htaccess文件放在 \dev\www\ 目录中,并且您的.htaccess文件有类似这样的内容,那么RewriteRule ^(.*)$ /index.php?/$1 [L]这是一个正则表达式,表示获取 URL 中的所有字符并将它们附加到/index.php?脚本中。这/$1是正则表达式中的反向引用。

于 2013-01-23T22:09:11.620 回答
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>
于 2017-02-28T08:16:12.953 回答