apache2 mod_rewrite 規則錯誤(雖然我認為我所做的一切都是正確的,並且已經用盡了谷歌的搜尋結果)

apache2 mod_rewrite 規則錯誤(雖然我認為我所做的一切都是正確的,並且已經用盡了谷歌的搜尋結果)

這個重寫規則沒有達到目的:(

    RewriteCond %{REQUEST_METHOD} ^(GET)$
    RewriteRule ^/wiki-search/(.+)$ NicerAppWebOS/index.php?app-wikipedia.org-search=$1 [L,END,PT,DPI]

apache 日誌(在啟用 apache 網站的設定中設定 rewrite:trace6):

[Tue Aug 29 06:30:46.281647 2023] [rewrite:trace3] [pid 2760088] mod_rewrite.c(480): [client 192.168.178.29:45136] 192.168.178.29 - - [192.168.178.29/sid#7ff3a4331d20][rid#7ff3a438f0a0/initial] [perdir /var/www/192.168.178.29/] add path info postfix: /var/www/192.168.178.29/wiki-search -> /var/www/192.168.178.29/wiki-search/john
[Tue Aug 29 06:30:46.281648 2023] [rewrite:trace3] [pid 2760088] mod_rewrite.c(480): [client 192.168.178.29:45136] 192.168.178.29 - - [192.168.178.29/sid#7ff3a4331d20][rid#7ff3a438f0a0/initial] [perdir /var/www/192.168.178.29/] strip per-dir prefix: /var/www/192.168.178.29/wiki-search/john -> wiki-search/john
[Tue Aug 29 06:30:46.281650 2023] [rewrite:trace3] [pid 2760088] mod_rewrite.c(480): [client 192.168.178.29:45136] 192.168.178.29 - - [192.168.178.29/sid#7ff3a4331d20][rid#7ff3a438f0a0/initial] [perdir /var/www/192.168.178.29/] applying pattern '^/wiki-search/(.+)$' to uri 'wiki-search/john'
[Tue Aug 29 06:30:46.281651 2023] [rewrite:trace3] [pid 2760088] mod_rewrite.c(480): [client 192.168.178.29:45136] 192.168.178.29 - - [192.168.178.29/sid#7ff3a4331d20][rid#7ff3a438f0a0/initial] [perdir /var/www/192.168.178.29/] add path info postfix: /var/www/192.168.178.29/wiki-search -> /var/www/192.168.178.29/wiki-search/john
[Tue Aug 29 06:30:46.281652 2023] [rewrite:trace3] [pid 2760088] mod_rewrite.c(480): [client 192.168.178.29:45136] 192.168.178.29 - - [192.168.178.29/sid#7ff3a4331d20][rid#7ff3a438f0a0/initial] [perdir /var/www/192.168.178.29/] strip per-dir prefix: /var/www/192.168.178.29/wiki-search/john -> wiki-search/john
[Tue Aug 29 06:30:46.281654 2023] [rewrite:trace3] [pid 2760088] mod_rewrite.c(480): [client 192.168.178.29:45136] 192.168.178.29 - - [192.168.178.29/sid#7ff3a4331d20][rid#7ff3a438f0a0/initial] [perdir /var/www/192.168.178.29/] applying pattern '^/wiki-search/(.+)$' to uri 'wiki-search/john'
[Tue Aug 29 06:30:46.281655 2023] [rewrite:trace3] [pid 2760088] mod_rewrite.c(480): [client 192.168.178.29:45136] 192.168.178.29 - - [192.168.178.29/sid#7ff3a4331d20][rid#7ff3a438f0a0/initial] [perdir /var/www/192.168.178.29/] add path info postfix: /var/www/192.168.178.29/wiki-search -> /var/www/192.168.178.29/wiki-search/john
[Tue Aug 29 06:30:46.281656 2023] [rewrite:trace3] [pid 2760088] mod_rewrite.c(480): [client 192.168.178.29:45136] 192.168.178.29 - - [192.168.178.29/sid#7ff3a4331d20][rid#7ff3a438f0a0/initial] [perdir /var/www/192.168.178.29/] strip per-dir prefix: /var/www/192.168.178.29/wiki-search/john -> wiki-search/john

我正在 Ubuntu 22.04 上運行,使用最新的 apache2 :

root@parakeet:/var/www/192.168.178.29/NicerAppWebOS/scripts.maintenance# apache2 -v
Server version: Apache/2.4.52 (Ubuntu)
Server built:   2023-05-03T20:02:51

我真的可以在這裡使用一些模組重寫專家的幫助..

有關應用程式的演示,請參閱https://nicer.app/wiki/en.wikipedia.org- 搜尋欄還不能運作...:(

答案1

啊!一些谷歌搜尋(並在我的OP中遵循我自己的評論)有幫助:D

    RewriteCond %{REQUEST_METHOD} ^(GET)$
    RewriteCond %{HTTP:X-Requested-With} XMLHttpRequest
    RewriteRule ^wiki-search/(.*)$ NicerAppWebOS/logic.AJAX/ajax_get_content.php?app-wikipedia.org-search=$1&%{QUERY_STRING} [L]

    RewriteCond %{REQUEST_METHOD} ^(GET)$
    RewriteRule ^wiki-search/(.*)$ NicerAppWebOS/index.php?app-wikipedia.org-search=$1&%{QUERY_STRING} [L]

相關內容