Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache php和pdf文件的htaccess URL重写_Apache_.htaccess_Redirect - Fatal编程技术网

Apache php和pdf文件的htaccess URL重写

Apache php和pdf文件的htaccess URL重写,apache,.htaccess,redirect,Apache,.htaccess,Redirect,我知道这经常出现,但我很难理解其中的一些细节,希望有人能帮助我 我需要采取以下措施: 创造 创造 创造 此外,xyz.co.uk和xyz.org也应该被重写到xyz.com,并且所有这些都应该作为永久重定向向搜索引擎报告 我试图在一个htaccess文件中实现这一点,该文件中还有一个标准的CodeIgniter重写规则,用于删除查询字符串 有人能帮我吗?我试过几种方法,但不能得到任何对所有方法都有效的方法!我也花了五个小时在这上面,慢慢地把我的头发拔出来 任何帮助,指向正确的方向等。。

我知道这经常出现,但我很难理解其中的一些细节,希望有人能帮助我

我需要采取以下措施: 创造

创造

创造

此外,xyz.co.uk和xyz.org也应该被重写到xyz.com,并且所有这些都应该作为永久重定向向搜索引擎报告

我试图在一个htaccess文件中实现这一点,该文件中还有一个标准的CodeIgniter重写规则,用于删除查询字符串

有人能帮我吗?我试过几种方法,但不能得到任何对所有方法都有效的方法!我也花了五个小时在这上面,慢慢地把我的头发拔出来

任何帮助,指向正确的方向等。。将不胜感激


干杯

Gerben,很抱歉延迟回复,我被拉走了,没有回到我的办公桌。所以我理解了这一点,我认为在重写规则部分之后。。。下一节是它需要成为什么,然后是原始部分。我理解$1理论,但我说[^/]+表示此处的任何字符加上$1变量是否正确?否,
RewriteRule
后的第一部分是您要匹配的模式。在那之后是你想要重写的内容$0代表整个比赛$1是第一组括号之间的部分,$2是第二组括号等。。并不是说重写是内部的,所以apache使用重写的url来检索资源,但在用户地址栏中不可见<代码>[^/]表示除
/
以外的任何字符;加号表示这些字符中的一个或多个。啊,对吧,像RewriteRule^abc/pdf/+$/xyz/2012/publications/$1.pdf这样的东西会将123.com/xyz/2012/publications/Month12.pdf重写为123.com/abc/pdf/Month12.pdf?如何从文件名中删除“month”一词?您需要使用
重写规则^abc/pdf/(.+)$/xyz/2012/publications/$1.pdf
(注意加号前的括号和点)。此外,在最终的url中,您需要删除
.pdf
,因为规则添加了这一点。因此,根据此规则,请求
example.com/abc/pdf/Month12
将使Apache在内部使用
example.com/xyz/2012/publications/Month12.pdf
。要删除月份部分,可以使用
RewriteRule^abc/pdf/([0-9]+)$/xyz/2012/publications/Month$1.pdf
#redirect any domain other than example.com, to example.com
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] 

RewriteRule ^newsroom/$ /news.room/

RewriteRule ^newsroom/([0-9]+)$ /news.room/showstory.php?storyid=$1

RewriteRule ^newsroom/convert/([^/]+)$ /files/pdf/uk/$1.pdf