Articles of mod rewrite

Apache的url重写不按预期工作

看起来好像现在在工作,我没有做任何事情… stange … 我想写http://www.1024jobs.net/jobs/view/17.jhtml到http://www.1024jobs.com/jobs/view/17.jhtml 所以我在.htaccess中尝试了以下规则之一 RewriteRule ^jobs/view/([0-9]+)\.jhtml$ http://www.1024jobs.com/jobs/view/$1.jhtml [L,R=301] RewriteRule ^jobs/view/([^.]+).jhtml$ http://www.1024jobs.com/jobs/view/$1.jhtml [L,R=301] 但它总是翻译成下面的urlhttp://www.1024jobs.net/jobs/view/17.jhtml到http://www.1024jobs.com/jobs/view/.jhtml 然而,刚刚发现下面是正确的翻译…. http://www.1024jobs.net/jobs/view/16.jhtml任何人都可以帮助和解释? 谢谢

在Joomla的htaccess Mod_Rewrite

Joomla 1.5的URL结构在版本2.5中改变了。 之前是: http://example.com/index.php?option=com_content&task=view&id=587&Itemid=73 现在是: http://example.com/index.php?option=com_content&view=article&id=587&Itemid=114 *请注意ID和itemid数字基于页面更改,而所有页面有一个ID不是都在URL中具有的Itemid。 虽然我们更新了数据库中的所有链接,但很多人还是有旧的链接结构,所以我们要编辑htaccess文件,所以如果有人进入旧的结构,它会转向正确的结构。 简单地说,在url中input的任何URL与task = view都应该replace为view = article。 有没有人知道一个简单的方法来做到这一点在htaccess?

难以捉摸的重写/redirect规则发生在Apache2上,找不到任何地方?

我有一个服务器与apache2.2托pipe多个虚拟主机,与less数域包含关键字(如“foo123”)全部被重写/redirect到我的托pipe域的另一个。 我所有的其他域名按预期工作。 问题是我无法在任何地方find这个难以捉摸的规则。 我检查过: 我的apache2.conf(多次) httpd.conf(空) 每个站点在/ etc / apache2 / sites-enabled&sites-available中的configuration 每个网站的.htaccess文件在/ var / www / / etc / apache2用greprecursion地(也用nano来手动) / var / www用greprecursion地 / etc / php5用greprecursion地(只是可以肯定) iptables的 我也检查我的主机的控制面板上的我的DNSlogging,以及尝试与Apache的RewriteLog(设置在4,然后9)debugging启用,但没有这样的运气。 我错过了什么?

Apache catchallconfiguration

我正在build立一个Catchall作为Apache虚拟主机。 这个想法是让这个虚拟主机进程处理所有先前定义没有完成的请求,然后有条件地将它们redirect到另一个URL。 以下是我到目前为止: <VirtualHost *:80> ServerName default ServerAlias * <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} (www\.)?wrongsite1.com$ [NC] RewriteRule ^(.*)$ http://correctsite1.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} (www\.)?wrongsite2.com$ [NC] RewriteRule ^(.*)$ http://correctsite2.com/$1 [R=301,L] </IfModule> </VirtualHost> 看起来规则的处理在第一个规则被处理之后不会停止,即使它被设置为最后一个。 意思是,从错误的网站1,我结束了一个url: http://correctsite1.com/http://correctsite2.com ://correctsite1.com/http://correctsite2.com 我究竟做错了什么? 编辑:在最终版本中,将只有2个正确的网站URL,与几个RewriteConds,使用[OR]。

Mod_rewrite显示subdomain.domain.com并为SSL调用domain.com/subdomain/

我有一个网站由一个标准的SSL证书保护,确保不同的子目录下的几个不同的商店。 防爆。 domain.com/shop1/商店也可以通过一个子域名,例如shop1.domain.com访问。 我正在努力实现的:将shop1.domain.com显示给用户,同时将所有实际的服务器调用保持为domain.com/shop1,以便安全页面继续正常工作。 (不确定我是否正确地使用了正确的语言,我希望我的观点清楚。) 要清楚:我的SSL工作正常,我不需要帮助,我不需要或不想购买UCC证书。 任何有Apache经验的人都不会那么困难。 (我花了3个小时试图了解mod_rewrite,只是没有点击。)我在GoDaddy安全的共享服务器,请记住,我不能重置服务器或任何东西。

.htaccess文件中的mod_rewrite为未知path的第一部分

我想写一个重写规则来改变pathslu to查询参数。 这是一个Web服务,只应该重写这个规则,如果主机启动API。 有两个slu that,我试图捕捉和重写。 第一个是可选的,是一个版本(即v1.2),第二个是服务域(即客户,交易等)。 http://api.domain.com/v2.5/customers应该重写为?version = 2.5&domain = customers 我也想支持一个默认版本 http://api.domain.com/customers应该重写为?version =&domain = customers 这是我的.htaccess文件的样子: RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^api\..* RewriteRule ^v([\d\.]*)?\/?([^\/]*)$ ?version=$1&domain=$2 上面的第一个例子工作正常,但我不能得到默认的版本path工作。 我尝试了很多不同的东西。 我认为以^。* v开头会有所帮助,但是没有。 当你不知道起始字符时,谁知道如何使它匹配?

用于.htmlselect器的mod_rewrite

我们有一个网站,其url类似于www.example.com/about.smart.html (如果智能手机设备是基于useragent,则应用服务器上添加了“智能”select器) 如果用户更改了URL,我们需要将页面redirect到404,如下所示: www.example.com/about.abc.xyz.smart.html www.example.com/about.smart.abc.html 我试着用下面的规则,但是这个redirect到404只有1)而不是2) RewriteCond %{REQUEST_URI} !^(.*)(-)\.html$ RewriteRule (.*)\.(.*).smart.html$ – [R=404,L] 任何指针在这将有很大的帮助。

将所有页面mod_rewrite复制到一个脚本

我尝试使用以下规则: RewriteEngine On RewriteRule ^(.*)$ /~user/sub/index.cgi [L] 但我得到一个错误。 这是为了将我的子/子目录(这是在一个服务器上的Web文档)中的所有请求redirect到一个脚本,但它不工作。 什么是正确的规则? 谢谢!

为什么禁止使用mod_rewrite的目录中的所有php文件拒绝访问目录列表?

服务器:Apache 2.2.17 我有下一个.htaccess文件: <IfModule mod_rewrite.c> RewriteEngine On RewriteRule !^includes/ – [S=1] RewriteRule ^includes/[^/]+\.php$ – [F,L] RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 正如你所看到的,我禁止用户访问“includes”目录中的所有php文件。 除了php文件,我还有另一个目录和一个图像里面的“包括”,但我没有索引文件。 那么为什么禁止所有的PHP文件这种方式拒绝访问目录列表? PHP文件被禁止,我可以访问图像,并进入“包括”内的其他目录。 但“包含”目录中的文件列表被拒绝。 为什么?

在rewriterule中使用unicode

我在RewriteRule使用了包含utf8字符的.htaccess文件中的以下语句。 .htaccess文件以utf8编码保存在记事本中。 网站的所有页面都保存在utf8中,所有的字符集都是utf8。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /new/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^هاستینگ/هاست-لینوکس-عادی/$ /linux-regular.php [L] </IfModule> 但是,当我浏览到URL هاستینگ/هاست-لینوکس-عادی/只是我得到未find错误。