2014-03-06 75 views
0

我真的被困在我的.htaccess文件中,需要一些帮助:)。我有用于测试的WordPress安装。它在一个文件夹中,我使用.htaccess去那里。这是我目前使用的规则:重写网址并用.htaccess删除部分

######### Custom ######### 
RewriteEngine On 

# ignore folders 
RewriteCond %{REQUEST_URI} "/af1wp/" 
RewriteRule (.*) $1 [L] 

############### 
# only for me # 
############### 
# HOME (Senne Tijdeman) 
RewriteCond %{REMOTE_ADDR} ^###\.###\.###\.###$ 
RewriteCond %{HTTP_HOST} ^((www.)?([a-z0-9_\-]+).)?alleenf1.nl$ 
RewriteCond %{REQUEST_URI} !^/af1wp/$ 
RewriteRule ^(.*)$ /af1wp/$1 [L] 

这有效(当然我的真实IP地址),所以没有问题。但现在我想将现有的URL重写为新的格式。旧的URL是这样的:

http://alleenf1.nl/nieuws/QOgbb/raikkonen-alles-is-mogelijk-in-australi

新的URL应该是这样的:

http://alleenf1.nl/raikkonen-alles-is-mogelijk-in-australi

我想删除 “呼号/ QOgbb/” 的部分是并不总是相同,所以我必须使用正则表达式。但是我所尝试的一切都没有奏效。

我认为这很简单,但显然不适合我。现在我有2个问题。

  1. 什么是正确的RewriteRule做到这一点?
  2. 我应该把它放在哪里。在根文件夹的.htaccess中,或WordPress安装所在的af1wp文件夹中?

    1. 是的,URL总是用文件夹开始:

    TNX先进


    从下面poncha awnser问题。只是澄清(不清楚)“nieuws”部分总是相同的,但不是第二部分(称之为ID)。

  3. 我更喜欢重定向。
  4. 文件/raikkonen-alles-is-mogelijk-in-australi是WordPress中的一篇文章。该WordPress安装目前驻留在文件夹af1wp中,但将在移动时移至根文件夹。
+0

请说清楚几点:原始网址是否始终以两个“文件夹”开头?或者也许只有最后一部分(最后一个斜杠之后)很重要?另外,如果浏览器被*重定向*到一个新的位置,或执行子请求(原始网址保持不变)?在文档根目录下是否存在'/ raikkonen-alles-is-mogelijk-in-australi'文件,或者这个虚拟uri文件是否存在? – poncha

+0

^^如果您编辑问题并提供我在那里请求的信息,而不是按照方式回复评论,那将会更好。 – poncha

+1

@Poncha,tnx您的评论。我已经为你更新了这个问题:-) – iSenne

回答

1

试试这个:

RewriteEngine On 
RewriteRule ^nieuws/([^/]+)/(.*) /af1wp/$1 [R=301,L,QSA] 
  1. 这只会匹配开始的 “呼号”
  2. 现在的URL,重写目标是/af1wp/,移动WordPress的时候将其更改为/
  3. 当您移动wordpress时,您需要在wordpress规则中混合使用此规则,因为它已经有自己的重写规则 - 将此规则放在其规则之上。
  4. 这里使用的标志:
    • R=301 - 重定向HTTP状态301(永久移动)。
    • L - 最后一条规则(规则停止此规则的匹配成功后,解析)
    • QSA - 查询字符串追加(追加原始查询字符串到重写的请求)。
+0

谢谢你的帮助:-)。修复! – iSenne