2015-11-25 163 views
1

我想编辑页面的URL(只有一个页面调用meto.php)到一个自定义URL。301重定向到特定的URL

meto.php文件位于子目录/pob/ 我想改变这个www.domain/pob/meto.phpwww.domain/pob/define.php

当访客类型此地址www.domain/pob/meto.php地址栏显示这个地址是很重要的:www.domain/pob/define.php

请注意define.php文件不存在。

我想这个代码.htaccess文件在/pob/(不是根目录):

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^domain.com[nc] 
RewriteRule ^(.*)$ http://www.domain.com/pob/$1 [r=301,nc] 
Redirect 301 meto.php define.php 

//also 
    Redirect 301 /meto.php http://www.domain.com/pob/define.php 

// 

RewriteRule ^meto.php define.php 

不幸的是以上所有的尝试失败。

服务器信息:

Apache的版本2.2

PHP:5.5

回答

0

使用mod_alias中的重定向Directiv您无法重写文件,它是用于外部重定向。

尝试mod_rewrite的

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^domain.com$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/pob/$1 [R=301,L] 
#1) redirect "/pob/meto.php to "/pob/define.php" 
RewriteCond %{THE_REQUEST} /meto.php [NC] 
RewriteRule^/define.php [NC,L,R] 

#2) rewrite "pob/define.php" to "/pob/meto.php" 
RewriteRule ^define\.php$ /pob/meto.php [NC,L] 
+0

谢谢你的答复第二个代码让我这个错误“过多的重定向发生试图打开”和第二代码让我500内部错误。我把这个代码放在.htaccess中/ pob/director不是root – paula

+0

你试过编辑过的答案吗? – starkeen

+0

是像以前一样 – paula