web-dev-qa-db-ja.com

URLからサブフォルダを削除する

私はWordPressサイトのURLからサブフォルダを削除するのに苦労しています。

現在のURLフォーマットはwww.mysite.com/subfolder/index.php/category/postnameです。

URLからサブフォルダとindex.phpの両方を削除したいです。

このサイトは私のサーバーのrootのサブフォルダーに入っていなければなりません。

私の現在のhtaccessファイルは:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /subfolder/index.php [L]
</IfModule>

うまくいきませんでしたが、以下を追加しようとしました。

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^subfolder/(.*)$ http://www.mysite.com/$1 [R=301,L]
RewriteRule .* index.php/$0 [PT,L] 

正確に何が欲しいのかわからない。もう少し詳しく質問をお願いします。

www.mysite.com/subfolder/postnamesubfolderはあなたのWordPressがインストールされている場所です)のようなURLが欲しい場合は、 設定>パーマリンク に行き、 ポスト名 に変更してください。

_編集_

WordPressのインストールがsubfolderにあり、www.mysite.com/category/postnameのようなURLが必要な場合は、 WordPressアドレス サイトアドレス の両方をwww.mysite.com パーマリンク に設定し、カスタム構造を選択します。そしてこのタグ/%category%/%postname%を使用してください。

1
Abhik

WPサイトのURLと自宅のURLは、設定/全般で異なるようにする必要があります。ホームのURLはexample.com、サイトのURL(WPがある場所)はexample.com/wp(またはどこに置いても)にする必要があります。

あなたはあなたの設定ファイルでこれらをハードコードすることができます:

define('WP_HOME',    'http://example.com');
define('WP_SITEURL', 'http://example.com/wp');

WPはそこから物事を取り出す方法を知り、それがあるべき場所に.htaccessを配置する必要があります。

そうでない場合、私自身のサイトのフォルダはこのようになります:

  • .htaccess
  • index.php
  • wP

Index.phpファイルには以下が含まれています。

<?php
// WordPress view bootstrapper
define( 'WP_USE_THEMES', true );
require( './wp/wp-blog-header.php' );

そして.htaccessは含まれています:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

WPによって生成されたURLの/index.phpビットに関して、それはWPがあなたのサイトがパーマリンクを管理することができないことを(誤って?)見つけていることを意味します。 (これはあなたが Nginx を使っているからだと賭けることができますか?)

あなたがWPよりよく知っていると仮定して、あなたのwp-content/mu-pluginsフォルダに必需品プラグインを追加してください。 force-permalinks.phpファイル:

<?php
add_filter( 'got_rewrite', '__return_true' );
1