簡體   English   中英

為什么我在沒有尾部斜杠的情況下獲得404頁面但是它與尾部斜杠一起使用?

[英]Why am I getting a 404 for a page without the trailing slash but it works with the trailing slash?

我有一個允許用戶創建和構建網站的應用程序。 我們稱之為system.com 當用戶創建具有域(例如domain.com )的站點時,他們已轉發到我們的域名服務器,它會創建文件夾,並通過cPanel API將其域添加到我們的服務器,如system.com/ [user id] / [網站ID] / 在該文件夾中有一個index.php文件和一個.htaccess文件,其中包含:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)/$ index.php?page=$1 [L]

我不會在那里詳細介紹它是如何工作的,但基本上用戶可以創建像domain.com/something/something-else/這樣的頁面。 “東西”文件夾顯然不存在,我們的系統只是從htaccess中選擇它們並從那里開始。

我的問題是domain.com/something/something-else/有效,但domain.com/something/something-else返回404.我一直在做研究並嘗試很多東西,但似乎無法讓它工作。 有任何想法嗎? 提前致謝。

編輯

我應該提到我到目前為止所嘗試的內容。 無論尾部的斜線如何,我都嘗試將重寫改為工作,如下所示:

RewriteRule ^(.*)(?/$) index.php?page=$1 [L]

以及其他變種。

我也嘗試了不同的強制尾隨斜杠的方法,但這些方法都沒有。

我想你希望你的規則看起來像這樣:

RewriteRule ^(.*)/?$ index.php?page=$1 [L]

其中說:“任意數量的任意字符可選地后跟斜杠應更改為index.php?page = $ 1,其中$ 1是您在斜杠之前找到的字符。如果匹配,則忽略您找到的任何其他規則。”

它基於你的網址重寫訪問規則..

RewriteRule ^(.*)/$ index.php?page=$1 [L]

你可以看到index.php?page = $ 1別名為/ ,所有請求都發送到index.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM