带有 .htaccess 重写引擎的漂亮 URL

Pretty URLs with .htaccess rewrite engine

提问人:Adam 提问时间:9/26/2023 最后编辑:RavinderSingh13Adam 更新时间:10/5/2023 访问量:63

问:

赫吉,

我正在尝试使用重写引擎为我的网站实现一个漂亮的网址。目标是这样的——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]

但这并没有真正帮助:/ 谢谢

Apache .htaccess mod-rewrite url-rewriting

评论

0赞 Adam 9/26/2023
DA = Dansk = 丹麦语

答:

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
  1. 将特定规则放在顶部和顶部,以便它们优先。dada/success
  2. 用于停止对这些特定情况的进一步重写。[L]
  3. 一般规则遵循具体规则。

评论

0赞 Adam 9/26/2023
好吧,但是然后它会引导我进入存储库“da”并进入单页“da.php”,我必须附加 .php 才能使其工作,对吧?我注意到这些规则有点交叉,所以我仍然对如何让它工作感到困惑,但它似乎是每个多语言网站的某种标准,所以它应该没有那么困难......
0赞 ЯДPTГФИ 9/26/2023
该规则将重写以 to 结尾的 URL 标志将停止进一步重写,因此您不会遇到追加到此特定 URL 的问题。RewriteRule ^da$ da.php [L]/dada.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相关的内容,而且我没有任何配置文件包含这个配置文件,我相信:(