将目录的所有请求重定向到特定页面并创建新URL

时间:2015-11-18 15:15:55

标签: php apache .htaccess

我有一些语言特定的目录,现在没有任何内容,但会从外部应用程序获得流量。因此,我需要将所有页面请求重定向到特定页面,该页面使用适当的语言,该页面将具有一些消息传递和指向等效EN页面的链接。例如:http://example.com/DE/somepage.html(或包含/ DE /目录的任何其他文件路径)应该转到http://example.com/DE/temppage.html我已经尝试了几十个.htaccess命令而没有运气,但这看起来对我来说没有&# 39;工作:

RewriteEngine on
RewriteRule ^DE/(.+) DE/temppage.html [L,R]

现在为我工作

<IfModule mod_rewrite.c>
    RewriteEngine on
     RewriteCond %{REQUEST_URI} !/HGTemp.php$ [NC]
     RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
     RewriteRule .* /dir/dir/dir/DE/HGTemp.php [R=302,L]
</IfModule>

因为无论目录如何,文件路径都相同,我想采用请求的 URL http://example.com/DE/somepage.html,抓取文件路径并将其放入英文版的工作网址中IE http://example.com/EN/somepage.html。我正在尝试使用PHP,将请求的URL存储在会话中,获取该文件路径并将其添加到正确的目录路径。

<?php
    session_start();
    var extension = $path_parts['extension']; //not correct but the idea is
    echo 'http://example.com/EN/' . $extension . '.com; //not correct but the idea is
?>

关于完成这两项任务的最有效方法的任何想法?

这是工作解决方案

$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$my_var = 'en-us';
$temp = explode( '/'  , $url );
$temp[6] = $my_var;
$url = implode( '/' , $temp );
$url = str_replace("Page.php", "", $url);

0 个答案:

没有答案