gpt4 book ai didi

apache - 多域设置上的 htaccess : other domains don't work

转载 作者:行者123 更新时间:2023-12-01 03:45:07 26 4
gpt4 key购买 nike

我的服务器上有一个多域设置,看起来像这样……这是结构模型:

  • .htaccess
  • ***我的网站
  • .htaccess
  • index.php
  • 项目.php
  • 工作.php
  • some-project.php
  • 另一个-project.php
  • some-job.php
  • another-job.php***
  • 其他域
  • 其他域
  • 其他域

  • 我有两个目标:

    1.) 根 .htaccess 文件应该确保我的主域是 /my-website输入 www.my-website.com 时自动运行/执行.由于我有一个多域 ftp-server,我需要指定它。那已经在起作用了。

    2.) 在我的子目录 /my-website我需要一些不同的规则,尤其是关于更好的 url 设计和 .php 扩展名的省略。
  • 所以在 /my-website我想忽略所有.php后缀。
  • 我想“伪造”目录,例如 /jobs /projects这实际上不是目录,而是 php 文件本身。

  • 到目前为止,这就是我在此 thread 中感谢 @anubhava 所拥有的.

    DocumentRoot/.htaccess:
    RewriteEngine On
    RewriteBase /

    RewriteRule ^projects/(.+?\.php)$ /$1 [L,NC]
    RewriteRule ^jobs/(.+?\.php)$ /$1 [L,NC]
    RewriteRule ^(downloads/.+)/?$ assets/$1 [L,NC]

    # add .php extension
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
    RewriteRule ^(.+?)/?$ $1.php [L]

    RewriteCond %{REQUEST_URI} !^/my-website/
    RewriteCond %{DOCUMENT_ROOT}/my-website%{REQUEST_URI} -f [OR]
    RewriteCond %{DOCUMENT_ROOT}/my-website%{REQUEST_URI} -d
    RewriteRule ^(.*)$ /my-website/$1 [L]

    /我的网站/.htaccess:
    RewriteEngine On
    RewriteBase /my-website/

    # add .php extension
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{DOCUMENT_ROOT}/my-website/$1\.php -f [NC]
    RewriteRule ^(.+?)/?$ $1.php [L]

    但是我现在在使用这个时遇到了问题,在 my-website 中没有尾随的链接 .php不会工作。我希望我的链接像 /projects 一样工作但运行/执行 /projects.php在我的网站。但是,这目前不起作用,我收到了 404。
    我也想要 /projects/some-project运行/执行 /some-project.php (其中 projects 目录实际上不存在)也不起作用,也是 404。

    所以,总结一下。
  • 我所有的域现在都可以使用了!所以我的多域设置是保存和处理。
  • 然而里面/my-website我希望所有链接都可以在没有尾随 .php 和这个“伪造”目录的情况下工作

  • 所以现在这有效......
  • www.my-website.com //有效
  • www.other-domain.com //有效
  • www.my-website.com/projects //如果没有尾随 .php 则不起作用
  • www.my-website.com/projects.php //工作(运行projects.php)
  • www.my-website.com/projects/some-project //不起作用(应该运行 some-project.php)
  • www.my-website.com/projects/some-project.php //有效(运行 some-project.php)
  • 最佳答案

    拥有这样的 root .htaccess:

    RewriteEngine On
    RewriteBase /

    ## COMMENT out these 2 rules
    # RewriteRule ^projects/(.+?\.php)$ /$1 [L,NC]
    # RewriteRule ^jobs/(.+?\.php)$ /$1 [L,NC]

    RewriteRule ^(downloads/.+)/?$ assets/$1 [L,NC]

    # add .php extension
    RewriteCond %{DOCUMENT_ROOT}/my-website/$1\.php -f [NC]
    RewriteRule ^(?:[^/]+/)?([^/]+)/?$ my-website/$1.php [L]

    RewriteCond %{HTTP_HOST} ^(www\.)?my-website\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/my-website/ [NC]
    RewriteRule ^(.*)$ my-website/$1 [L]

    # add .php extension 2
    RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
    RewriteRule ^(?:[^/]+/)?([^/]+)/?$ $1.php [L]

    /我的网站/.htaccess:
    RewriteEngine On
    RewriteBase /my-website/

    # add .php extension
    RewriteCond %{DOCUMENT_ROOT}/my-website/$1\.php -f [NC]
    RewriteRule ^(?:[^/]+/)?([^/]+)/?$ $1.php [L]

    关于apache - 多域设置上的 htaccess : other domains don't work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27617487/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com