例如,我有一个名为 footer1.php
的PHP文件我想为这个名为“ footer1.php ”的特定文件制作一个重写文件
我的常规网址结构是 - http://localhost/seestatus_new/footer1.php?page=about&cat=history
我想将其更改为 - http://localhost/seestatus_new/about/history
我的.htaccess文件示例 -
Options +FollowSymLinks
#turn rewrite engine on
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#rewrite rule for footer1.php
RewriteCond %{REQUEST_URI} ^/footer1\.php$
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-%]+)$ footer1.php?page=$1&cat=$2 [L,QSA]
请积极帮助这个。提前谢谢。
答案 0 :(得分:0)
最简单,最直接的方法就是使用重定向。但是,这并不总是令人满意,并且需要大量额外的文件。
但是,您可以使用window.href
获取当前页面地址,并使用正则表达式来实际获取扩展名。
您的代码可能会在每个网页上加载footer1.php(在文件树中的每个位置,无论实际网址如何),然后使用正则表达式解析网址并获取地址。然后,您可以在php代码中设置page
和cat
等变量。
这是一种解决方法,但它可以使用并允许您在网址中使用所需的网页地址,而无需更改数据加载结构。希望这有帮助!
编辑:代码
获取加载php的webapge的基本URL的方法是
$link = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
然后你会使用parse_url
方法
$url_array = parse_url($link, PHP_URL_PATH)
这将返回url路径。所以,例如,
https://website.com/path/to/file
将返回一个包含键“path”和值“path / to / file”的数组。
然后只需要使用preg_match
将其转换为通常出现在标题中的两个变量,并将它们定义为php中的内联变量。然后,您可以继续使用定义的变量值的其余代码,而不必将它们放在URL中。