Questions tagged «mod-rewrite»

Apache Web服务器的URL重写模块。它通常用于所谓的“漂亮” URL,但也提供了执行各种请求处理任务的能力和灵活性,而不仅仅是简单的替换。

24
通用htaccess将www重定向到非www
我想重定向www.example.com到example.com。以下htaccess代码可实现此目的: RewriteCond %{HTTP_HOST} ^www\.example\.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301] 但是,有没有一种方法可以以通用的方式而不用对域名进行硬编码?

15
如何为Apache 2.2启用mod_rewrite
我在Vista机器上重新安装了Apache 2.2,一切正常,除了mod重写。 我没有评论 LoadModule rewrite_module modules/mod_rewrite.s 但是我的重写规则都无效,即使是简单的规则 RewriteRule not_found %{DOCUMENT_ROOT}/index.php?page=404 我正在使用的所有规则都可以在主机上使用,因此应该可以,所以我的问题是,apache配置中是否存在任何隐藏内容,可能会阻止mod重写?

14
htaccess重定向到https:// www
我有以下htaccess代码: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond !{HTTPS} off RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </IfModule> 我希望https://www.使用HTTPS 将我的站点重定向到该站点,并强制执行该www.子域,但是当我访问http://www.(不使用HTTPS)时,它不会将我重定向到https://www使用HTTPS。

16
调试.htaccess重写规则的提示
许多发布者在调试文件中的RewriteRule和RewriteCond语句时遇到问题.htaccess。其中大多数使用共享主机服务,因此无权访问根服务器配置。他们无法避免使用.htaccess文件进行重写,也无法启用RewriteLogLevel”,正如许多受访者所建议的那样。此外,还有很多.htaccess特定的陷阱和约束没有得到很好的涵盖。对于大多数人来说,设置本地测试LAMP堆栈涉及太多的学习曲线。 所以我的Q这里是如何将我们建议他们调试他们的规则本身。我在下面提供一些建议。其他建议,将不胜感激。 了解mod_rewrite引擎在.htaccess文件中循环。引擎运行以下循环: do execute server and vhost rewrites (in the Apache Virtual Host Config) find the lowest "Per Dir" .htaccess file on the file path with rewrites enabled if found(.htaccess) execute .htaccess rewrites (in the user's directory) while rewrite occurred 因此,您的规则将重复执行,如果您更改URI路径,则它可能最终会执行其他.htaccess文件(如果存在)。因此,如有必要,请通过添加其他内容RewriteCond来停止触发规则来确保终止此循环。.htaccess除非明确打算使用多级规则集,否则还请删除所有较低级的重写规则集。 通过对一组测试模式进行测试,确保每个Regexp的语法正确,以确保这是一种有效的语法,并使用完整的测试URI来达到您的预期。有关更多详细信息,请参见下面的答案。 在测试目录中逐步建立规则。 您可以使用“ .htaccess在路径功能上执行最深的文件”来在此处设置单独的测试目录(树)并调试规则集,而无需弄乱您的主要规则并停止站点的工作。您必须一次添加一个,因为这是将故障定位到单个规则的唯一方法。 使用虚拟脚本存根转储服务器和环境变量。(请参见清单2),例如,如果您的应用程序使用,blog/index.php则可以将其复制到其中test/blog/index.php并使用它来测试test子目录中的博客规则。您还可以使用环境变量来确保重写引擎正确解释替换字符串,例如 RewriteRule ^(.*) - …

19
.htaccess重写以将根URL重定向到子目录
试图得到 www.example.com 直接去 www.example.com/store 我尝试了多段代码,但没有任何效果。 我尝试过的 Options +FollowSymlinks RewriteEngine on RewriteCond %{HTTP_HOST} ^example.com$ RewriteRule (.*) http://www.example.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^(.+)\www.example\.com$ RewriteRule ^/(.*)$ /samle/%1/$1 [L] 我究竟做错了什么?


8
RewriteBase如何在.htaccess中工作
我已经在几个.htaccess例子中看到了 RewriteBase / 它的功能似乎与<base href="">HTML的功能有些相似。 我相信它会自动将其值放在RewriteRule语句的开头(可能是那些没有前导斜线的语句)? 我无法使其正常工作。我认为它的使用可以非常方便地实现站点可移植性,因为我经常拥有与生产服务器不同的开发服务器。我当前的方法使我无法从RewriteRule语句中删除部分。 谁能简要向我解释如何实施? 谢谢

18
.htaccess将所有页面重定向到新域
我将使用哪个重定向规则将要重定向到的所有页面olddomain.example重定向到newdomain.example? 该站点的结构完全不同,因此我希望将旧域下的每个页面都重定向到新域索引页面。 我认为这可以做到(在olddomain.example基本目录下): RewriteEngine On RewriteRule ^(.*)$ http://newdomain.example/ [R=301] 但是,如果我导航到,则会olddomain.example/somepage重定向到newdomain.example/somepage。我希望仅重定向到newdomain.example没有页面后缀的地方。 如何保留最后一部分?

23
apache从非www重定向到www
我的网站似乎没有从非www重定向到www。 我的Apache配置如下: RewriteEngine On ### re-direct to www RewriteCond %{http_host} !^www.example.com [nc] RewriteRule ^(.*)$ http://www.example.com/$1 [r=301,nc] 我想念什么?

5
如何调试Apache mod_rewrite
我使用mod_rewrite存在两个主要问题: 1)我的规则无效时,没有报告有意义的错误 2)为了可靠地测试每个修改,我必须清除chrome的缓存。这不是火箭科学,但我必须按Ctrl + Shift + Delete,然后单击“确定”,然后关闭窗口并重新加载。 我想看看是否有任何大师愿意分享他们的秘密,以有效地管理mod_rewrite代码。

15
如何检查是否在PHP中启用了mod_rewrite?
我想知道是否可以检查是否mod_rewrite在中的Apache AND IIS上启用了该功能PHP。 存在用于IIS的ModRewrite。检查一下here。 因此,我正在寻找一个mod_rewrite在Apache和IIS上进行检查的PHP脚本。 有谁知道这样的脚本或可以写一个? 特别是对于Microsoft IIS。 谢谢!
149 php  apache  mod-rewrite  iis 

6
.htaccess mod_rewrite-如何从重写规则中排除目录
我的.htaccess文件中有8行重写规则。我需要从这些规则中排除服务器上的两个物理目录,以便可以访问它们。目前,所有请求都发送到index.php文件。 要排除的目录:“ admin”和“ user”。 因此,不应将http请求:http: //www.domain.com/admin/传递到index.php文件。 ErrorDocument 404 /index.php?mod=error404 Options FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L] RewriteRule ^([^/] )/([^/] )\.html$ index.php?lang=$1&mod=$2 [L] RewriteRule ^([^/] )/$ index.php?lang=$1&mod=home [L]

4
参考:mod_rewrite,URL重写和“漂亮链接”说明
“漂亮的链接”是一个经常要求的主题,但是很少对其进行完全解释。mod_rewrite是创建“漂亮链接”的一种方法,但是它很复杂,语法非常简洁,难以理解,并且该文档假定HTTP具有一定的熟练程度。有人可以简单地解释“漂亮链接”如何工作以及如何使用mod_rewrite创建它们吗? 其他通用名称,别名,干净URL的术语:RESTful URL,用户友好的URL,SEO友好的URL,慢速(slugging)和MVC URL(可能是误称)

5
用PHP重写URL
我有一个网址,看起来像: url.com/picture.php?id=51 我将如何将该URL转换为: picture.php/Some-text-goes-here/51 我认为WordPress也是一样。 如何使用PHP创建友好的URL?

8
拒绝htaccess对文件夹和文件的直接访问
这是方案: index.php根文件夹中有一个文件 一些文件包含在index.php其中是在includes文件夹中。 submit.php根文件夹中还有1个其他文件()用于表单提交操作。 我想includes通过htaccess 限制直接用户访问文件夹中的文件。也为submit.php。但是include将适用于index.php文件。就像,如果用户键入www.domain.com/includes/somepage.php,它将对其进行限制(可以重定向到错误页面)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.