我正在尝试将“漂亮”的网址应用到我的网站。
ie:localhost/chess/game.php?id=10
到
localhost/chess/game/10
继承我的htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteBase /chess/
RewriteRule ^games$ games.php
RewriteRule ^new$ newgame.php
RewriteRule ^game/(\d+)*$ game.php?id=$1
它适用于游戏和新游戏,但对于游戏,它向我显示没有样式的页面并显示我的错误'没有游戏'
如何修复此htaccess? 我需要更改我在哪里读取get文件的php文件吗?
答案 0 :(得分:1)
样式错误可能是由于您用于样式的路径。
如果您使用相对路径:styles/css.css
那么这在主页上可以正常工作,但是如果您从/game/
访问此文件,那么浏览器将在{{{{}}中查找该文件1}}
假设您的样式可以通过站点的根目录访问,您可以在css路由的开头添加game/styles/css.css
,以便浏览器从根路径中提取它们。
示例:/
答案 1 :(得分:1)
这应该在您的/chess/.htaccess
文件中:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /chess/
RewriteRule ^games/?$ games.php [L]
RewriteRule ^new/?$ newgame.php [L]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^game/(\d+)/?$ game.php?id=$1 [L,QSA]
还要确保在css,js,images文件中使用绝对路径,而不是相对路径。这意味着您必须确保这些文件的路径以http://
或斜杠/
开头。
您也可以尝试在页面的HTML标题中添加:<base href="/" />