提问人:Adam 提问时间:9/26/2023 最后编辑:RavinderSingh13Adam 更新时间:10/5/2023 访问量:63
带有 .htaccess 重写引擎的漂亮 URL
Pretty URLs with .htaccess rewrite engine
问:
赫吉,
我正在尝试使用重写引擎为我的网站实现一个漂亮的网址。目标是这样的——mysite.dk/da、mysite.dk/da/success 和 mysite.dk/da#scroll。
到目前为止,我的htaccess文件如下所示:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
DirectoryIndex /index.php
我试图实现这一点
RewriteRule ^da$ da.php [L]
RewriteRule ^da/success$ success.php [L]
但这并没有真正帮助:/ 谢谢
答:
0赞
ЯДPTГФИ
9/26/2023
#1
要获得您想要的漂亮 URL,请像这样修改您的文件:.htaccess
RewriteEngine on
# Specific rewrites
RewriteRule ^da$ da.php [L]
RewriteRule ^da/success$ success.php [L]
# General rewrites
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
# Default index
DirectoryIndex index.php
- 将特定规则放在顶部和顶部,以便它们优先。
da
da/success
- 用于停止对这些特定情况的进一步重写。
[L]
- 一般规则遵循具体规则。
评论
0赞
Adam
9/26/2023
好吧,但是然后它会引导我进入存储库“da”并进入单页“da.php”,我必须附加 .php 才能使其工作,对吧?我注意到这些规则有点交叉,所以我仍然对如何让它工作感到困惑,但它似乎是每个多语言网站的某种标准,所以它应该没有那么困难......
0赞
ЯДPTГФИ
9/26/2023
该规则将重写以 to 结尾的 URL 标志将停止进一步重写,因此您不会遇到追加到此特定 URL 的问题。RewriteRule ^da$ da.php [L]
/da
da.php.
[L]
.php
0赞
Adam
9/26/2023
好的,我明白了,但出于某种原因,当我输入 url mysite.dk/da 并访问所需的站点时,我现在仍然有这个目录内容列表,我仍然需要附加.php,例如 mysite.dk/da.php :// idk 如何在评论中发布屏幕截图
1赞
anubhava
9/26/2023
#2
像这样:
# Default index
DirectoryIndex index.php
# disable directory listing and MultiViews
Options +FollowSymLinks -MultiViews -Indexes
# disable automatic addition of trailing / after a directory
DirectorySlash Off
RewriteEngine on
# add .php extension
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
评论
0赞
Adam
9/27/2023
这也不能以理想的方式工作:/
0赞
Adam
9/28/2023
我很抱歉。好吧,我需要将.php附加到登录页面 da.php 以及 /da/succes.php(在丹麦语中是单个 s 的成功,我不会一遍又一遍地拼写 xD)并且避免这些是这场斗争的重点。您还有什么建议吗?:)
0赞
Adam
9/28/2023
因为我想有一个漂亮的 url 没有附加 .php...就像 mysite.dk/home 而不是 mysite.dk/home.php 一样。你能看到吗?: )
0赞
anubhava
9/28/2023
好的,这个.htaccess位于哪个目录中,什么是值?DOCUMENT_ROOT
0赞
Adam
9/28/2023
.htaccess位于所有目录,索引和其他内容(如机器人.txt等)的最顶部。我搜索了我所有的Apache配置文件,没有找到任何与DOCUMENT_ROOT相关的内容,而且我没有任何配置文件包含这个配置文件,我相信:(
评论