我想拥有example.com/amsterdam之类的网址,我知道您可以像example.com/#/amsterdam这样。
但我不想在URL中使用/#/部分。我想我需要为此修改.htaccess,但是我没有在互联网上找到一个很好的例子。
我想要的是当有人导航到example.com/amsterdam时
我希望它转到可以通过javascript处理/ amsterdam的主页,以便可以在主页上显示amsterdam文本,并将example.com/amsterdam放在Google的我的sitemap.xml中。
我尽力解释这一点。如果您对如何完成此工作有任何直觉,请随时回复
最佳答案
好吧,这很难上类,但我是按照以下方式完成的。
我将以下行添加到我的.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页面,并在 session 中保存他们尝试访问的链接。
关于javascript - 干净的url在前端管理,没有标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52790909/