当前位置: 首页 > 知识库问答 >
问题:

. htaccess已被读取,但重写url不工作

郎永福
2023-03-14

重写httpd.conf中的模块如下:

LoadModule rewrite_module modules/mod_rewrite.so

通往成功之路。htaccess:

c:\wamp\www\magentodev\。htaccess

所以在。htacess我有这个:

<IfModule mod_rewrite.so>

    Options +FollowSymLinks
    RewriteEngine on

    RewriteCond %{REQUEST_URI} ^/boombottleh2o\+?$
    RewriteRule (.*) /gu/boombottleh2o.php [NC,L,QSA]

//some other ones

</IfModule>

我希望尝试:

localhost/magentodev/boombottleh2o

而不是:

localhost/magentodev/gu/boombottleh2o.php

它应该可以工作,因为它在生产环境中工作,而不是在本地主机上,我有wamp服务器apache,下面是一些配置:

在C:\wamp\bin\apache\apache2.4.9\conf\httpd.conf中:

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require local
</Directory>

这是不正确的,因为Anu说,所以我改变了在C:\wamp\bin\apache\apache2.4.9\conf\额外\httpd-vhosts.conf:

<Directory "C:/wamp/www/">
Options All
AllowOverride All
Order allow,deny
Allow from all
</Directory>

<VirtualHost *:80>
ServerAdmin localhost
DocumentRoot C:/wamp/www/
ServerName localhost
</VirtualHost>

我想不出哪里出了问题,非常感谢您的帮助

共有3个答案

令狐晟
2023-03-14

看起来您的RewriteCond需要匹配http://localhost/boombottleh2o/而不是使用localhost/magentodev/boombattalleho作为请求URI字符串的url将包含/magentodev/boombattalleho,但是您的正则表达式希望在字符串的最开始处匹配/boombattalleho

要修复该情况,您需要在开始时移除克拉^

您还将在正则表达式的末尾转义字符。将尝试匹配符号0或一次。我不确定这是否是故意的,但是如果你使用。*?相反,您将始终匹配 /boombottleh20/文件夹的请求,即使请求更深或包含文件类型

Tl; dr-我认为你的重写规则应该是这样的:

RewriteCond %{REQUEST_URI} /boombottleh2o.*?$
何飞翰
2023-03-14

我在Windows 7的Wamp服务器2.5版上遇到了类似的问题。。

你的. htaccess文件看起来很可靠,但是用你的vhost.conf确保覆盖你所有的边界,并在文件的开头添加一个正则表达式*

所以与其

这消除了localhost,因为您已经将其设置为服务器名,您可以在下面添加别名

这听起来很明显,但您是否尝试过与wampmanager合作?

单击Wamp图标,然后单击Apache,然后单击modules并向下滚动一点,确保重写模块旁边有一个复选框。那帮我修好了!

祝你好运,Wamp总是比看起来更狡猾

宰父劲
2023-03-14

拥有你的C:/wamp/www/magentodev/。htaccess如下所示:

ErrorDocument 404 default
Options +FollowSymLinks
RewriteEngine on

RewriteRule ^boombottleh2o(/.*)?$ gu/boombottleh2o.php [NC,L]
  • Apachemod_rewrite简介
  • Apachemod_rewrite技术细节
  • Apachemod_rewrite深入细节
  • Apachemod_rewrite初学者教程
 类似资料:
  • 嗯,我的.htaccess有问题,我想重写这个: http://domain.com/a/thread-103518.html#103518 对这个 http://domain.com/a/103518 换句话说。。。我想删除“thread-”和“.”后面的所有内容,/a/必须是变量。。。还有其他带有/bla/和/code的论坛/ 你有什么线索给我吗?非常感谢。 我的.htaccess现在: 重写

  • 我希望你能帮忙。我试图写一个htaccess文件做以下事情。 1)重定向到www.地址 2) 从url中删除.php 3) 如果文件不存在,则使用filechecker.php?page=filename 1.我能忍受 RewriteCond%{HTTP_HOST}^example.com$ *)http://www.example.com/1美元[R=301, L] 2) 我受够了 Rewrit

  • 我需要一个解决方案。需要重写两个URL: 到 我尝试了许多不同的解决方案,但没有一个奏效。然而,我确实重写了这些网址,就像我说的,但是我的页面没有打开,所以我想它都在细节中。 对于提示: > onama.php和pravila.php文件位于/pages/目录中 编辑: 我想我很幸运:)用这个再试了一次,它成功了,我不擅长.htaccess规则,但这是我问题的解决方案: 编辑(新问题) 我试图制定

  • 我用CodeIgniter和几个控制器构建了一个应用程序 除了在应用/配置/routes.php文件中设置为默认的控制器之外,所有控制器似乎都工作正常 我的. htaccess文件看起来像这样: 重写引擎在 RewriteBase/ RewriteCond%{REQUEST_FILENAME}上-重写cond%{REQUEST_FILENAME}-d 重写规则^(.*)$/索引。php/$1[L]

  • 问题内容: 我以前从未使用过CodeIgniter,更不用说任何php框架了,我想我可以试试看。一切正常,除了我似乎无法从URL中删除index.php并仍然访问我的页面。 我从未使用过MVC结构,因此我正在学习中,如果做错了,请原谅我。 我试图通过简单地键入 localhost / ci / about* 来访问我创建的名为“ about_page.php”的视图 , 但是目前我只能使用 loc

  • 我已经设置了这组重写(Zend Framework默认重写规则): 我的文件夹只包含和,没有其他内容。 重写规则应通过index.php将所有请求发送到不存在的文件。这适用于(无论是否存在控制器),但不适用于或以开头的任何其他url。 所有URL都被路由到apache的404页面,所有其他URL都可以工作。 我该如何解决这个问题?