我遇到了更改地址的问题:
http://localhost/project/maps/pages/route.php?id=6680342be54df196c6cceba6624a10374dd6c51c1484853317
到
http://localhost/project/route/6680342be54df196c6cceba6624a10374dd6c51c1484853317
我设法通过htaccess这样做:
RewriteEngine On
RewriteRule ^routes/([0-9a-zA-Z]+) maps/pages/route.php?id=$1
但是现在我在route.php中包含所有我的404,例如:
<link href="../vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
我的文件夹是这样的:
www
->project
->index.php
->maps
->vendor
->bootstrap
->css
->bootstrap.min.css
->pages
->route.php
我不想更改maps
文件夹中的任何内容,因为这是一个由其他人开发的应用程序,但我不希望我的网站看起来像:
http://localhost/project/maps/pages/route.php
相反,我想要的东西,一旦上传到我的服务器看起来像
http://website.com/route/6680342be54df196c6cceba6624a10374dd6c51c1484853317
无需转储主文件夹上的文件。换句话说,如何使文件夹maps
完全分离但使用不同的地址?
感谢。
答案 0 :(得分:1)
您可以设置重定向规则来修复/vendor/
路径:
RewriteEngine On
RewriteBase /project/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/maps/ [NC]
RewriteRule (?:^|/)((?:vendor|data|dist|js|mapicon|includes)/.+)$ maps/$1 [L,NC,R=301,NE]
RewriteRule ^routes/([0-9a-zA-Z]+)/?$ maps/pages/route.php?id=$1 [L,QSA,NC]