标签: mod-rewrite

通用htaccess将www重定向到非www

我想重定向www.example.comexample.com.以下htaccess代码实现了这一点:

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法以通用方式执行此操作而不对域名进行硬编码?

apache mod-rewrite url-rewriting

478
推荐指数
10
解决办法
49万
查看次数

如何为Apache 2.2启用mod_rewrite

我已经在我的Vista机器上安装了新的Apache 2.2,一切正常,除了mod重写.

我没有注释

LoadModule rewrite_module modules/mod_rewrite.s
Run Code Online (Sandbox Code Playgroud)

但是我的重写规则都没有,即使是简单的重写规则

RewriteRule not_found %{DOCUMENT_ROOT}/index.php?page=404
Run Code Online (Sandbox Code Playgroud)

我正在使用的所有规则都在处理我的托管,所以它们应该没问题,所以我的问题是,apache配置中是否有任何隐藏的东西,可以阻止mod重写?

apache mod-rewrite

460
推荐指数
12
解决办法
120万
查看次数

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>
Run Code Online (Sandbox Code Playgroud)

我希望我的网站可以重定向到https://www.HTTPS,并强制执行www.子域,但是当我访问http://www.(没有HTTPS)时,它不会将我重定向到https://wwwHTTPS.

apache .htaccess mod-rewrite https redirect

301
推荐指数
8
解决办法
56万
查看次数

调试.htaccess重写规则的提示

许多海报在调试文件中的RewriteRule和RewriteCond语句时遇到问题.htaccess.其中大多数使用共享托管服务,因此无权访问根服务器配置.他们无法避免使用.htaccess文件进行重写,并且无法像许多受访者所建议的那样启用RewriteLogLevel.还有许多.htaccess特定的陷阱和约束都没有得到很好的解决.设置本地测试LAMP堆栈对于大多数人来说需要太多的学习曲线.

所以在这里我的Q是我们怎么会建议他们调试他们的规则本身.我在下面提供一些建议.其他建议将不胜感激.

  1. 了解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
    
    Run Code Online (Sandbox Code Playgroud)

    因此,您的规则将重复执行,如果您更改URI路径,那么它可能最终会执行其他.htaccess文件(如果存在).因此,请确保终止此循环,必要时添加额外的内容RewriteCond以停止规则触发..htaccess除非明确意图使用多级规则集,否则还要删除任何较低级别的重写规则集.

  2. 通过针对一组测试模式进行测试,确保每个Regexp的语法都是正确的,以确保它是一个有效的语法,并完成您对各种测试URI的意图.请参阅下面答案了解更多详情

  3. 在测试目录中逐步构建规则. 您可以使用" .htaccess在路径功能上执行最深的文件"来设置单独的测试目录(树)和调试规则集,而无需搞砸主要规则并停止站点工作.您必须一次添加一个,因为这是将故障本地化为单个规则的唯一方法.

  4. 使用虚拟脚本存根转储服务器和环境变量.(参见清单2)如果您的应用程序使用了,blog/index.php那么您可以将其复制 …

apache .htaccess mod-rewrite

264
推荐指数
9
解决办法
11万
查看次数

.htaccess重写以将根URL重定向到子目录

想要得到

www.example.com
Run Code Online (Sandbox Code Playgroud)

直接去

www.example.com/store
Run Code Online (Sandbox Code Playgroud)

我已经尝试了多位代码而没有工作.

我尝试过的:

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]
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

.htaccess mod-rewrite redirect

240
推荐指数
12
解决办法
50万
查看次数

使用.htaccess和mod_rewrite强制SSL/https

如何使用PHP中特定的.htaccess和mod_rewrite页面强制使用SSL/https.

php .htaccess mod-rewrite ssl https

228
推荐指数
5
解决办法
27万
查看次数

RewriteBase如何在.htaccess中工作

我在几个.htaccess例子中看到了这一点

RewriteBase /
Run Code Online (Sandbox Code Playgroud)

它的功能似乎与<base href="">HTML 有些相似.

我相信它可能会自动将其值添加到RewriteRule语句的开头(可能没有前导斜杠)?

我无法让它正常工作.我认为它的使用对于站点可移植性非常方便,因为我经常有一个与生产服务器不同的开发服务器.我目前的方法让我删除了我的RewriteRule陈述中的部分内容.

谁能简单地向我解释如何实现它?

谢谢

.htaccess mod-rewrite

220
推荐指数
7
解决办法
41万
查看次数

.htaccess将所有页面重定向到新域

我将使用哪个重定向规则将所有页面olddomain.example重定向到重定向到newdomain.example

该网站具有完全不同的结构,因此我希望将旧域下的每个页面重定向到新的域索引页面.

我认为这样做(在olddomain.example基目录下):

RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.example/ [R=301]
Run Code Online (Sandbox Code Playgroud)

但如果我导航到olddomain.example/somepage我被重定向到newdomain.example/somepage.我期待重定向只能newdomain.example没有页面后缀.

如何保留最后一部分?

.htaccess mod-rewrite

208
推荐指数
11
解决办法
44万
查看次数

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] 
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

apache mod-rewrite redirect no-www

202
推荐指数
10
解决办法
21万
查看次数

如何调试Apache mod_rewrite

mod_rewrite有两个主要问题:

1)当我有一个无效的规则时,没有报告有意义的错误

在此输入图像描述

2)为了可靠地测试每个修改,我必须擦除chrome的缓存.这不是火箭科学,但我必须按Ctrl + Shift + Delete然后单击确定,然后关闭窗口,然后重新加载.

我想看看是否有任何大师愿意分享他们的秘密来有效地管理mod_rewrite代码.

apache mod-rewrite

166
推荐指数
4
解决办法
18万
查看次数

标签 统计

mod-rewrite ×10

.htaccess ×6

apache ×6

redirect ×3

https ×2

no-www ×1

php ×1

ssl ×1

url-rewriting ×1