相关疑难解决方法(0)

如何调试Apache mod_rewrite

mod_rewrite有两个主要问题:

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

在此输入图像描述

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

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

apache mod-rewrite

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

参考:mod_rewrite,URL重写和"漂亮的链接"解释

"漂亮的链接"是一个经常被要求的主题,但它很少被完全解释.mod_rewrite是制作"漂亮链接"的一种方法,但它很复杂,其语法非常简洁,难以理解,文档假定HTTP具有一定程度的熟练程度.有人可以用简单的术语解释"漂亮的链接"是如何工作的以及如何使用mod_rewrite来创建它们?

其他常见名称,别名,干净网址术语:RESTful URL,用户友好的URL,SEO友好的URL,Slugging,MVC url(可能用词不当)

apache .htaccess mod-rewrite friendly-url

138
推荐指数
4
解决办法
3万
查看次数

如何从URL中删除.html?

如何.html从静态页面的URL中删除?

此外,我需要将任何网址重定向到没有网址的网址.html.(即www.example.com/page.htmlwww.example.com/page).

html .htaccess

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

.htaccess中$ 1与%1之间的差异

%1$1.htaccess有什么区别?

例如,

    #  to remove www  
    RewriteCond %{HTTP_HOST} ^(\w+)\.mydomain\.com [NC]

    RewriteRule .* http://mydomain.com/%1 [R=301,L]    
    #    versus
    #    RewriteRule .* http://mydomain.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

我一直在使用Dave Child的.htaccess备忘单Jackol的.htaccess备忘单以及Apache mod_rewrite docs但是额外的帮助会很棒.

apache .htaccess mod-rewrite

34
推荐指数
1
解决办法
2万
查看次数

调试.htaccess的流行技术

我是一个自学成才的编码员,我喜欢通过回应可疑变量和评论代码进行调试.

最近,我必须了解更多关于.htaccess文件的信息.我需要它来做像解释php脚本为php5,url重写,限制文件上传大小等....我在调试.htaccess文件时遇到很多麻烦.我经常要将PHP应用程序从一个共享托管环境迁移到另一个托管环境.有时这会破坏.htaccess文件(或者更确切地说,.htaccess文件中的某些内容会破坏网站).我检查以确保更新域名.

有没有流行的调试.htaccess文件的技术?它只是看看apache日志?还要别的吗?

apache debugging .htaccess

19
推荐指数
1
解决办法
2万
查看次数

如何调试htaccess重写脚本

我想知道如何创建和调试这种脚本,如果你不习惯写它们(比如我),它会变得有点头疼.

你用工具来创造它们吗?

调试正在进行的任何提示,而不仅仅是创建一个本地结构,看看浏览器中发生了什么?

debugging .htaccess mod-rewrite

19
推荐指数
3
解决办法
3万
查看次数

.htaccess从一个子文件夹重定向到其他子文件夹

我知道这听起来像其他许多问题,但我似乎无法找到答案.

说你在:www.domain.com/folderA/folder2/folder3/

我想将其重定向到:www.domain.com/folderB/folder2/folder3/

所以整个结构保持不变..它只是重定向.到目前为止,我有:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/folderA [NC]
RewriteRule ^(.*)$ /folderB/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

但是当我使用它时,它只会做www.domain.com/folderB/folderA/folder2/folder3/

我究竟做错了什么?我如何摆脱该文件夹A?

.htaccess redirect

13
推荐指数
1
解决办法
2万
查看次数

我该如何调试mod_rewrite规则?

这是一个"问自己一个问题并自己回答"的案例,我发帖是为了任何有同样问题的人的利益.

我在共享服务器上的.htaccess文件中调试mod_rewrite规则集时遇到了一些问题,我甚至无法访问Apache错误日志.我发现了一种调试它们的简洁方法,这是:

  1. 编写一个简短的脚本,只打印出它的查询字符串变量.例如在PHP中:

    <?='<pre>',htmlentities(print_r($_GET,true)),'</pre>'?>
    
    Run Code Online (Sandbox Code Playgroud)

    是你所需要的全部.

  2. 假设您将此脚本命名为"show.php"并将其放在/ public_html中.然后在.htaccess文件中,确定您认为可能导致问题的规则集中的点,并插入此规则:

    RewriteRule (.*) /show.php?url=$1 [END]
    
    Run Code Online (Sandbox Code Playgroud)

效果与在常规程序中插入PRINT语句相同.它会让你知道(a)你到达了规则集中的那一点,以及(b)当前重写的URL是什么.

它不像真正的调试工具那样闪存,但它完成了工作.

如果您使用的是Apache <2.3.9,则必须使用[L]而不是[END].在这种情况下,需要注意的是您的规则集不应该尝试将"/show.php"重写为其他任何内容.如果这是一个问题,您可以通过在顶部添加此规则来修复它:

RewriteRule ^show.php$ - [L]
Run Code Online (Sandbox Code Playgroud)

...只需记住在完成调试后将其删除!

debugging .htaccess mod-rewrite

6
推荐指数
2
解决办法
7830
查看次数

IIS重写Web.config中的规则以将HTTPS请求重定向到HTTP

我需要将所有https请求重定向到http,例如,如果有人访问https://www.example.com/another-page/,访问http://www.example.com/another-page/

我现在在web.config中有以下重写规则,但它无法正常工作.它将https://www.example.com/another-page/重定向到https://www.example.com/,所以到了网站的根目录,但我希望重定向保留在同一个网址中将https重写为http.

 <rule name="Redirect to HTTP" stopProcessing="true">
   <match url="(.*)" />
     <conditions>
       <add input="{R:1}" pattern="^onepage/(.*)$" negate="true" />
       <add input="{HTTPS}" pattern="^ON$" />
     </conditions>
     <action type="Redirect" url="http://{HTTP_HOST}/{R:0}" redirectType="Permanent" />
 </rule>
Run Code Online (Sandbox Code Playgroud)

任何有关更改上述规则的帮助,以便它只将https更改为http,但保持访问的完整网址将非常感谢!

iis web-config url-rewriting

6
推荐指数
2
解决办法
2万
查看次数

Apache Rewrite:基于HTTP主机的图像目录

我的软件支持多个域名,所有域名都指向服务器上的同一目录(当然每个数据库都有不同的数据库).所以这些领域......

www.example1.com
www.example2.com
www.example3.com
Run Code Online (Sandbox Code Playgroud)

......都指向......

/public_html/
Run Code Online (Sandbox Code Playgroud)

在图像目录中......

/public_html/images/
Run Code Online (Sandbox Code Playgroud)

我的目录与每个网站的主机名完全匹配:

/public_html/images/www.example1.com/
/public_html/images/www.example2.com/
/public_html/images/www.example3.com/
Run Code Online (Sandbox Code Playgroud)

我正在尝试让Apache重写请求,这样如果你直接查看图像并查看地址栏,你只能看到一次主机名.

所以请求......

http://www.example1.com/images/book.png
Run Code Online (Sandbox Code Playgroud)

...是由Apache提取的......

/public_html/images/www.example1.com/book.png
Run Code Online (Sandbox Code Playgroud)

我尝试过但在不同情况下取得成功的其中一件事情如下,但在这种情况下不起作用:

RewriteRule ^[^/]*/images(.+) images/%{HTTP_HOST}/$1
Run Code Online (Sandbox Code Playgroud)

apache .htaccess mod-rewrite

5
推荐指数
1
解决办法
4328
查看次数