我想拥有example.com/amsterdam这样的网址,我知道您可以像example.com/#/amsterdam这样。
但是我不想在URL中使用/#/部分。我想我需要为此修改.htaccess,但是我没有在互联网上找到一个很好的例子。
我想要的是当有人导航到example.com/amsterdam时 我希望它转到可以通过javascript处理/ amsterdam的主页,以便可以在主页上显示amsterdam文本,并将example.com/amsterdam放在Google的sitemap.xml中。
我尽力解释这一点。如果您对如何完成此操作有任何直觉,请随时回复
答案 0 :(得分:1)
好吧,这很难上班,但我是按照以下方式完成的。
我在我的.htaccess FallbackResource index.php
中添加了以下行,以确保您使用的是新版本的apache,因为这是apache的新功能。该操作是在找不到所需的页面时转到index.php页面,而不是标准的404。
然后,我添加了一个index.php页面,其中包含以下代码
$whitelist = [
"Rotterdam",
"Amsterdam",
];
$cwhitelist = [];
foreach ($whitelist as $key => $value) {
array_push($cwhitelist,strtolower($value));
}
$urlpath = strtolower(basename(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)));
$inarr = in_array($urlpath,$cwhitelist);
if(!$inarr){
$actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
if($actual_link != "https://www.slotenmakergroep.nl/"){
if( $actual_link != "http://www.slotenmakergroep.nl/"){
session_start();
$_SESSION["link"] = $actual_link;
header("Location: 404.php",true,301);
}
}
}
这是下面的操作,我批准了一个列入白名单的链接的白名单数组,然后将它们全部变为小写。
之后,我将URL和斜线后的文本作为文本,并检查该文本是否在数组中。如果它在数组中,我还要检查它的http链接还是https链接。
如果链接不在白名单中,我将其发送到404.php页面,并在会话中保存他们尝试访问的链接。