Articles of mod rewrite

Apache的mod_rewrite

我想要mod_rewrite来做到这一点: http://server/* – >redirect到http://server/app/* http://server/app/*不应该被redirect。 http://server.domain/* – >redirect到http://server/app/* http://server.domain/app* – >redirect到http://server/app/* 它必须使用mod_jk! 编辑:这是最终的解决scheme # force use of host 'server' RewriteCond %{HTTP_HOST} !^server$ RewriteRule ^(.*)$ server$1 [R,NE,L] # prepend /app to URL if missing RewriteCond %{request_uri} !^/app.*? RewriteRule ^(.+?)$ app/$1 [R,NE,L] 感谢你,fahadsadah和Insanity5902! 我很犹豫是否表示你们其中任何一位是“正确的”,因为两者都提供了宝贵的意见,从而构成了最终的解决scheme。

如何防止apache在“目录上下文”中重新启动重写处理

我有我的虚拟主机SSL连接(我非SSL SSL虚拟主机看起来相同,但没有第一个规则设置redirect)以下内容。 DocumentRoot /var/www/example.com/public/ <Directory "/var/www/example.com/public/"> #only mod_rewrite configuration is shown here RewriteEngine on RewriteBase / RewriteCond $1 !=signup RewriteCond $1 !=login RewriteCond $1 !=welcome RewriteCond $1 !=thankyou RewriteRule ^(.*)$ http://example.com/$1 [L,R,QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^(.+)$ index.php?q=$1 [L,QSA] </Directory> 我的意图是将任何不匹配的页面请求(注册|login|欢迎|谢谢)redirect到非SSL虚拟主机而不作进一步处理,否则不要redirect,而是在SSL虚拟主机内处理请求。 第一个RewriteRule集合照顾redirect,而第二个RewriteRule集合照顾正常的页面处理。 如果没有第一个规则集,所有请求都将在SSL虚拟主机下正确加载。 使用第一个规则集,redirect工作得很好,与列出的资源不匹配。 例如。 请求 https://example.com/about redirect到 http://example.com/about […]

如何在Ubuntu上为Drupal 6安装mod_rewrite

任何人都可以轻松地遵循如何在Ubuntu上安装mod_rewrite,以及在Drupal 6上安装mod_rewrite

是否有可能使用mod-rewrite添加一个随机variables的查询string?

客户使用的代理我们遇到了一个非常奇怪的问题。 简而言之,他们的代理caching不应该被caching的信息。 我们在头文件中提供了适当的信息,告诉代理服务器不要caching和通过SSL,但仍然在发生。 我可以通过在URL中查询string的末尾附加一个随机variables来防止这种情况。 例如: /information.php可能会显示caching的信息,而/information.php?randomvariable=12345不会。 有一个国防部重写规则,将容纳这样的事情? 谢谢! 编辑 – 每个Squillman的请求,这里是我们发送caching元数据(我misspoke,它是元数据,而不是HTTP头信息): <meta http-equiv="CACHE-CONTROL" CONTENT="NO-CACHE"> <meta http-equiv="PRAGMA" CONTENT="NO-CACHE"> <meta http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT"/> <meta http-equiv="Pragma" content="no-cache" /> 希望这可以帮助! 谢谢。 编辑2 – 我已经在应用程序级别实施了一个修复程序。 我为每个请求追加一个随机variables(seed = random md5)到查询string。 这是肮脏的 – 但它的作品。 我会发布更新,一旦我找出为什么这个问题正在发生。 感谢您的回应!

(无形)从文件夹重写到子域

目前在www.foo.com有一个网站。 我需要在www.foo.com/blog上设置一个(wordpress)博客,但是在一个单独的服务器上(有一个类似blog.bar.com的域名)。 网站访问者只能看到www.foo.com/blogurl。 所以: User sees Target URL ———————– ——————— www.foo.com/ -> www.foo.com/ www.foo.com/blog -> blog.bar.com/ www.foo.com/blog/wp-admin/ -> blog.bar.com/wp-admin 这一切都可以使用一些(一)重写规则,我假设? 博客内容是否可以通过2个完全不同的URL访问会导致任何问题(尤其是search引擎优化)? 是否有可能(并希望)通过blog.bar.com URL阻止访问?

301redirect和查询string

我正在寻找创build一个基于查询string纯粹的301redirect见b OLD URL: olddomain.com/?pc=/product/9999 New URL: newurl.php?var=yup 我正常的做法是这样的 redirect 301 pc=/product/9999 newurl.php?var=yup 但是这次我试图匹配只包含域和查询string的URL … 这样做的最好方法是什么? 谢谢

帮助重写规则

我想知道什么是一个重写语句,寻找这种情况: 我想在我的服务器上有多个用户。 每个用户可以在其目录中具有VirtualDocumentRoot类似的站点。 例如,他们只是在主目录中创build一个像example.com这样的目录,并将其托pipe。 问题是我不知道如果VirtualDocumentRoot可以做到这一点,或者如果它将需要一个重写规则,看起来在一个域的所有用户文件夹。 有谁能够帮助我?

ModRewrite域

我已经对ModRewrite的规则和条件做了一点研究,但一直没有find一套令人满意的规则/ conds来达到我要找的效果。 本质上,我有一个目录域A( http://www.domaina.com/dir/ ),我想redirect到域B上的不同目录( http://www.domainb.com/diff_dir/ ) 。 请注意,如果用户尝试访问domaina上的/ dir,我只想应用重写规则。 如果他们正在访问不同的目录或根目录,我不想重写URL。 谢谢!

Apache重写规则打破对方?

我有这个规则: RewriteCond %{REQUEST_URI} ^/(manhattan|queens|westchester|new-jersey|bronx|brooklyn)-apartments/.*$ RewriteCond %{REQUEST_URI} !^/guide/(.*)$ RewriteRule ^(.*)$ /home/neezer/public-html/domain.com/guide/$1 [L] 这是自己的伟大的作品。 从本质上讲,我有一堆目录,其中有一堆文件,我想保留在“/指南”文件夹,但我希望他们出现在网站的search引擎优化的原因。 这个规则是有效的,但不幸的是,原来的URL仍然工作(用“/指南”)。 我想301将URL中的“/ guide”redirect到那些没有的,实际上没有移动服务器上的文件。 我试着添加这个规则: RewriteCond %{REQUEST_URI} ^/guide/(manhattan|queens|westchester|new-jersey|bronx|brooklyn)-apartments/.*$ RewriteRule ^guide/(.*)$ http://www.domain.com/$1 [R=301,L] …但是完全违反了我的第一条规则。 有关我可能做错什么的想法? 请让我知道,如果你需要了解我的其他事情来帮助我解决这个问题。 编辑:每马修斯的build议,我已经改变了我的规则(这反映了我想要的行为): RewriteRule ^guide/(manhattan|queens|westchester|new-jersey|bronx|brooklyn)-apartments/(.*)$ http://www.domain.com/$1-apartments/$2 [R=301,L] RewriteRule ^(manhattan|queens|westchester|new-jersey|bronx|brooklyn)-apartments/(.*)$ /home/neezer/public-html/domain.com/guide/$1-apartments/$2 [L] 不过,这次的规则仍然是互相冲突的, 尝试访问由第二个规则(以及第一条规则正确redirect到的内容)所控制的页面在Safari中给我这个错误: 尝试打开“ http://www.domain.com/manhattan-apartments/east-village-chinatown-lower-east-side-apartments.php ”时发生太多redirect。 如果您打开redirect的页面打开另一个页面,然后redirect到打开原始页面,则可能会发生这种情况。 有什么build议么? 进一步编辑: 看来这些规则正在循环上去。 以下是重写日志的摘录: init rewrite engine with requested uri /manhattan-apartments/east-village-chinatown-lower-east-side-apartments.php pass through […]

Apache,Nginx,ReverseProxy,URL重写

我可以configurationApache反向代理服务器,以便它从本地文档根加载一些文件? 像可能是静态文件? 我可以用Nginx作为Apache的替代(mod_proxy,mod_proxy_html,mod_rewrite)吗? 如果是的话,任何链接? build议?