- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经在网上搜索了我的问题的答案,但没有任何运气,所以她说:
我正在为 SEO 目的重做我的 mod_rewrite,我希望所有的 url 都是小写的,例如:
http://BLAbla.com/
成为
http://bla.com/
目前我的 .htaccess 看起来像这样:
RewriteEngine on
RewriteMap lc int:tolower
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule (.*) ${lc:$1} [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule (.*)$ http://www.example.com/$1 [R=301,L]
RewriteRule ([\w]*)/$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^([^/]+)/([^/]?)$ index.php?worker=$1¶ms=$2 [L]
但是当我运行 http://localhost/site/我收到错误 500。我只知道基本的 reg ex,而且 mod_rewrite 非常有限,所以我无法在此处找到错误。如果我删除 rewritemap 行,该页面不会给出任何错误。是我的服务器不支持 rewritemap 还是什么??
非常欢迎关于 .htaccess 文件的任何其他评论:)
感谢您的宝贵时间。
最佳答案
@埃斯本
重写主机名有点棘手。您有权访问服务器错误日志吗?因为这可能会使用一些有关 500 的原因的信息。
为清楚起见,将参数括在引号中是个好主意:
RewriteMap lc int:tolower
RewriteCond "%{REQUEST_URI}" "[A-Z]"
RewriteRule "(.*)" "${lc:$1}" [R=301,L]
[L]
将强制结束对此请求的处理,这意味着如果对 URI 有更多工作要做,它将在重新请求时发生提交。您可能需要考虑对您的修改进行批处理,以便请求仅通过一次修改过程:
RewriteMap lc int:tolower
RewriteCond "%{REQUEST_URI}" "[A-Z]"
RewriteRule "(.*)" "${lc:$1}" [E=REDIRECT:TRUE]
RewriteCond "%{HTTP_HOST}" "!^www\." [NC]
RewriteRule "^" "-" [E=REDIRECT:TRUE,E=PREFIX_WWW:TRUE]
以下尝试做什么?
RewriteRule ([\w]*)/$ http://%{HTTP_HOST}/$1 [R=301,L]
效果(尽管正则表达式很古怪)是“如果 REQUEST_URI 以‘/
”结尾,将其剥离并重定向。那是你要的吗?请记住,.htaccess
文件中的内容略有不同。
还有这个:
RewriteRule ^([^/]+)/([^/]?)$ index.php?worker=$1¶ms=$2 [L]
您似乎在尝试说“将任何“foo/bar”更改为“index.php?worker=foo¶ms=bar””。如果这是正确的,它可能无法正常工作。由于您位于 .htaccess
文件中,因此您匹配的是文件系统路径,不是 URI。
那么试试这个:
RewriteMap "lc" "int:tolower"
RewriteCond "%{REQUEST_URI}" "[A-Z]"
RewriteRule "(.*)" "${lc:$1}" [E=REDIRECT:TRUE]
RewriteCond "%{HTTP_HOST}" "!^www\." [NC]
RewriteRule "^" "-" [E=REDIRECT:TRUE,E=PREFIX_WWW:TRUE]
RewriteCond "${ENV:REDIRECT}" "!TRUE"
RewriteRule "^" "-" [SKIP=2]
RewriteCond "${ENV:PREFIX_WWW}" "TRUE"
RewriteRule "(.*)" "http://www.${HTTP_HOST}/$1" [R=301,L]
RewriteRule "^" "-" [R=301,L]
RewriteRule "^([^/]+)/([^/]?)$" "index.php?worker=$1¶ms=$2" [PT]
我不确定 SKIP
对与 RewriteRule
混合的 RewriteCond
语句的影响,但试试看上面的内容如果你再近一点。
关于mod-rewrite - mod_rewrite 强制小写 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4893560/
我在这里寻求帮助。我正在尝试将 lighttpd mod_rewrite 转换为 apache mod_rewrite 在这里。轻型服务器 url.rewrite-once = ( "/tor
快速一: 我很好奇是否有人知道在某些情况下 $_SERVER['REQUEST_URI']将包含与 $_GET['_uri'] 不同的值,给定以下 .htaccess对于后者: RewriteCond
.htaccess mod_rewrite 是否需要以下打开/关闭标签?我已经让 .htaccess 在没有这些的情况下工作,但只是检查了 htaccess 教程,很多都包含这个标签。 ... 最
我正在尝试对我的电子商务网站进行一些改进,以获得更好的搜索引擎优化。更重要的事情之一是将产品设置为不使用旧的: /detail.php?pid=367 相反,我们设置了 8 个顶级类别,在 8 个顶级
我正在从 Apache 中的 Django FastCgi 设置迁移到 lighttpd 中的设置。 在 Apache 上,我使用 Django 文档中描述的 fcgi 配置。核心部分是将我所有的非静
我是 mod_rewrite 的新手,我正在尝试将我的网址转换为: website.com/profile.php?user=andy 到以下几点: website.com/user/andy 这是我
我正在使用在 tomcat 上运行的 Liferay 6.2 EE,但它的前端是 Apache 服务器。我想重定向用户,以便每当他们点击旧的 liferay URL 时,它就会将他们重定向到新的 li
好的,我正在测试安装在我的个人网络服务器上的 cms(joomla),然后再将其上线。 而且我希望能够阻止使用查询字符串,或者更重要的是阻止用户在查询字符串上输入内容(如 articleid 等更改)
我正在尝试将每个请求发送到 www.example.com/user/至 www.example.com/user.php?id=0使用这个 RewriteRule ^user/$ user.php?
我打算将我的网站转换为新的 CMS,但我想使用 mod_rewrite 将旧链接无缝重定向到新位置。 问题是我的新博客的文章编号与旧的不同,因为我将首先导入一些较旧的博客条目。因此,我的 mod_re
我已与我的主机确认启用了 mod_rewrite。我希望传入的请求被重写以传递到我的根目录中的 mod_rewrite.php 文件。 Mod_rewrite 似乎根本不起作用。这是我的 .htacc
我想重写 URL,以便当有人访问时: url.com/directory1/directory2 他在浏览器地址栏中看到了 URL,但实际上下面的 URL 显示的是文本 url.com/index.p
所以我试图让 mod_rewrite 工作,在 Windows 7 上使用 Apache2.2我将它作为本地服务器运行。所有网站都可以通过 http://localhost/ 访问没用? 我创建了一个
我想使用 Apache 的 mod_rewrite为了能够将路径的每个文件夹作为特定的查询参数,例如考虑以下内容: 基本示例 请求的网址:http://domain.com/shoes/prada/i
我有这个地址http://www.example.com并拥有此页面 http://www.example.com/world . 我可以用 mod_rewrite 做到这一点吗,我的页面变成 htt
我的情况是我需要将所有匹配 http://mywebsite.com/portfolio/[anyname] 的请求定向到 http://mywebsite.com/portfolio.php?用户名
我试图让 Symfony1.4 和 Symfony2 在 Apache(2.2.22)中的同一主机上工作 - 我认为问题在于两者都使用 mod_rewrite 将请求定向到 php Controlle
是否可以使用 mod_rewrite 将内部重定向(因此地址栏中的 url 不会更改)到同一主机上的不同端口? 例如 http://host.com:8080 -> http://host.com:9
我已经为此工作了几个星期。我希望能够使用友好的 URL 将变量传递给 PHP 脚本。例如,如果有人使用此 URL: https://example.com/foo/bar/who 我希望我的 PHP
我需要使用以下 URL 重定向传入请求: http://mywebsite.com/abc/mapserv.exe?map=123 到 http://mywebsite.com/abc/mapserv
我是一名优秀的程序员,十分优秀!