.htaccess 未找到每个文件

.htaccess 找不到每个文件。然而,我通常可以访问任何有问题的文件。.htaccess 与这些文件中的任何一个都位于同一文件夹中。


例如:如果我输入https://example.com/post.php它工作正常


但是,如果我尝试使用漂亮的链接(导致相同的文件 post.php),例如:https ://example.com/vijest/slug/123服务器以 404 响应,找不到文件。


任何其他漂亮的链接也会发生同样的情况,文件确实会退出,但是当通过 .htaccess 访问时,服务器会以 404 响应。


你能帮我吗?


RewriteEngine On    # Turn on the rewriting engine

<Files ~ "^.*\.([Hh][Tt][Aa])">

    Order allow,deny

    Deny from all

    Satisfy all

</Files>

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !^.*\.(css|jpe?g|gif|png|js|ico)$ [NC]


DirectoryIndex index.php


RewriteRule    ^vijest/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)?$    post.php?idNum=$2    [NC,L]

更新 1


我从同一台服务器复制了工作示例,但在其他项目中,它没有工作......但我 1000000000% 确定这些文件确实存在于指定路径中。


汪汪一只猫
浏览 134回答 2
2回答

紫衣仙女

所以如果有人通过这个线程,我的问题是文件名。它被命名为 htaccesss,而不是 htaccess。如果您打开共享的屏幕截图,您将能够看到。

慕姐4208626

您需要像这样将第二个参数传递给 .htaccess:post.php?idNum=$1&q=2第一个参数是 uniqe id,第二个参数是url字符串。Options +FollowSymLinksRewriteEngine OnRewriteRule ^/ index.php [NC,L]RewriteRule ^vijest/([a-zA-Z0-9_-]+)$&nbsp; &nbsp;post.php?idNum=$1 [L]RewriteRule ^vijest/(.*)/([a-zA-Z0-9_-]+)$&nbsp; &nbsp; post.php?idNum=$1&q=2&nbsp; &nbsp; [NC,L]您的 url 应该像这样保存在 db 中:how-to-create-seo-url你的 php 链接应该是这样的:<a href="vijest/<?php echo $row["news_url"];?>">See More</a>在post.php页面中:$_GET['idNum'];然后您的查询echo $_GET['idNum'];结果如下:https ://ibb.co/YDxQ8Mf和两个参数:https ://ibb.co/XSZnSMJ确保您的 post.php 是否在带有 htaccess 的根文件夹中。
打开App,查看更多内容
随时随地看视频慕课网APP