Articles of mod重写

遇到mod_rewrite规则应用不一致的问题

所以我被要求清理我们当前在apache上运行的web应用的URL(版本2.4.9,如果有兴趣的话),但是在mod re_write命令搞乱了几个小时之后,米在圈子里跑来跑去。 这是我正在尝试做的事情。 如果url是这样的( http://www.foo.bar/admin/index.php ),它显示为http://www.foo.bar/admin 如果url是这样的( http://www.foo.bar/admin/testpage.php ),它显示为http://www.foo.bar/admin/testpage 如果url是这样的( http://www.foo.bar/admin/testpage.php?id=15&foo=www ),它显示为http://www.foo.bar/admin/testpage?id = 15&富= WWW 到目前为止,我已经到了index.php解决….大部分…..第二个例子有时解决…. 基本上我的代码似乎很片断,只有在文件树中下两层。 所以我想知道这里有没有人可以帮我解决这个问题呢? 这是我在虚拟主机文件(因为我不想在每个目录中都有.htaccess文件) AllowOverride None RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)/$ $1.php RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ /$1/$2/$3.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ RewriteRule (.*)$ /$1/ [R=301,L]

删除URL上的双重url编码

我使用PayPal在我的服务器上设置了第三方购物车进行付款。 当用户完成交易时,他们被redirect到https://example.com/?target=payment%255freturn&txn_id_name=txnId… 正确的URL应该包括target=payment_return或target=payment%5freturn 。 这些URL可以正常工作,向客户提供发票,但PayPalredirect到的URL是URL编码的两次,因此给客户一个404错误。 我不能改变应用程序的逻辑来接受两次转义的URL,所以我一直在尝试设置一个redirect来纠正它。 我已经尝试了以下使用mod_alias或mod_rewrite的众多变体: RedirectMatch permanent (?i)^/\?target=payment%255freturn(.*) /target=payment_return$1 RewriteRule ^/\?target=payment%255freturn(.*) /target=payment_return$1 [NE] 我已经尝试了%255f,%5f和_的变体,而且我尝试了使用和不使用NE标志。 我怎样才能让用户redirect到正确的URL?

将整个网站redirect到另一个域

我有一个网站,我们将其称为domain.com,最初是用PHP编写的。 每个有效的URL都包含“domain.com/”部分之后的字母“php”。 我最近使用Django完成了对网站的完整重写,该网站目前位于beta.domain.com 我想要做的是将旧的PHP网站移动到old.domain.com,并将新的testing版网站移动到domain.com。 我想这样做,不要错过一个节拍。 我希望所有旧的链接redirect到新的子域。 这也包括链接的图像(以.php结尾)。

重写wordpress子域的规则

我有一个Zend Framework的PHP应用程序,它可以在www.mysite.com上正常工作,并使用标准的.htaccess文件和下列规则。 RewriteEngine on RewriteRule !\.(js|ico|gif|jpg|png|css|html)$ index.php 我现在想在我的服务器上使用blog.mysite.com的子域添加一个WordPress的博客。 有一个名为blog的目录,里面有wordpress应用程序。 我现在需要编辑htaccess文件以允许博客目录显示wordpress博客。 目前我得到一个500错误。 任何想法,我真的没有一个线索,关于htaccess和重写规则。 非常感谢。 格兰特

传递? 在重写规则

我正在使用这个 – (2)/(3 | 3)/([a-zA-Z0-9() – 。 ?$ /city/city-search.php?c=$1&t=$2&pf=$3&iptnr=$4 我正在调整 – www.winsoftwares.net/one/pune/two/three/index.php?ptnr=xyz,并希望访问city-search.php中的variables,如… one,pune,two,three和ptnr value 但作为stringfind'?' 在(index.php?ptnr = xyz)它打破….请帮助我 http://www.winsoftwares.net是无法redirect这…

解决.htaccess通配符子域重写问题

我一直在这个问题上工作了三天,并发表在几个论坛上,没有任何线索。 问题: 当用户键入SUBDOMAIN.domain.com我希望它保持在URL窗口中的方式。 这些文件的真实位置是domain.com/apps/SUBDOMAIN 我知道这是可能的使用.domain.com DNS Alogging(我已经完成)和.htaccess规则。 这是我现在的.htaccess规则 RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.com$ [NC] RewriteRule !^([a-z0-9-]+)($|/) /apps/%2%{REQUEST_URI} [PT,L] 好的,这几乎可以工作。 在subdomain.domain.com中input的内容是从domain.com/apps/subdomain中读取的 但有些事情是可怕的错误。 访问subdomain.domain.com/image.jpg(AKA domain.com/apps/subdomain)工作正常 访问subdomain.domain.com/anyfolder/image.jpg(AKA domain.com/apps/subdomain)会返回一个404 看着Cpanel错误日志显示这一点 [Thu Nov 18 20:48:50 2010] [error] [client ***.**.***.***] File does not exist: /home/domain/public_html/images, referer: http://subdomain.domain.com/apps/subdomain/ 所以它似乎是正确的重写在第一个目录的基础上,但低于那个被发回到public_html根 所有的帮助和build议将不胜感激 谢谢, 蒂姆 PS。 我不得不删除正确的超链接格式,因为我是一个新用户。

.htaccess错误与CSS

嘿,伙计们,我真的需要你写seourl的帮助。 我是新来的阿帕奇,国防部重写和.htaccess和一个星期后没有成功。 我想改变: sub.domain.com/soccer/teams.php?name=tiger到sub.domain.com/soccer/tigers 我的链接(老虎)应该是什么? 我怎么会这样设置,它不会导致.css | .jpg | .png错误。 我的.htaccess文件位于/ soccer /文件夹中。 请帮助或指导我到哪里我可以很好的帮助。

通过通配符子域保留地址栏中的原始子域url

我怎样才能改变我的重写规则,以保持在地址栏中的原始子域的url? 目前,如果我input“username.domain.com”,它将被redirect到“domain.com/username”…,我希望地址栏留在“username.domain.com”。 我在我的httpd.conf文件中使用带有这个重写规则的通配符子域: <IfModule mod_rewrite.c> Options +FollowSymLinks Options +Indexes RewriteEngine On RewriteCond %{HTTP_HOST} !www.domain.com$ [NC] RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com [NC] RewriteRule ^(.*)$ http://domain.com/sites/%2 [L] </IfModule> 这甚至有可能吗? 提前致谢。

使阿帕奇mod_rewrite ROL从dynamic数据库?

我有mod_rewrite罗斯硬编码,我想使它dynamic我可以从数据库以某种方式捕捉用户名? 或者我在configuration文件中定义的其他variables? ? 这是我现在所拥有的: RewriteRule ^/user01(.*) http://$1localhost:8086/RPC2 [P] RewriteRule ^/user02(.*) http://$1localhost:8088/RPC2 [P] RewriteRule ^/user03(.*) http://$1localhost:8089/RPC2 [P] RewriteRule ^/user04(.*) http://$1localhost:8090/RPC2 [P] RewriteRule ^/user05(.*) http://$1localhost:8091/RPC2 [P] 正如你可以看到每个用户我需要定义它硬编码,可以dynamic从数据库?

子域redirect到文件

这是我的htaccess: RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+?)\.imvu-e\.com$ RewriteCond /var/imvu/products/ht/clients/%1/ -d RewriteRule ^(.+) %{HTTP_HOST}$1 RewriteRule ^(?:www\.)?([^.]+?)\.imvu-e\.com/(.*) /var/www/imvu/products/ht/clients/$1/$2 [L] 我想要 anything.imvu-e.comredirect到/var/imvu/products/ht/clients/anything/ 因此http://anything.imvu-e.com/woot.php?var=4转到/var/imvu/products/ht/clients/anything/woot.php发送它var=4 现在访问它的方式是http://www.imvu-e.com/products/ht/clients/anything/woot.php?var=4