ルールを書き直すのに.htaccessを使用しているサイトがありますが、soemは機能しません。Linux Mint - Apache 2.4 .htaccess rewriteRuleが動作しない
これは私の.htaccessファイルです:
RewriteEngine On
RewriteBase/
# Inicio
RewriteRule ^inicio|home|index$ index.php [QSA,L]
# Paginacion amigable
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)\.([0-9]+)$ $1?pag=$2 [QSA,L]
# Miniaturas
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*\/)?tdd([A-Za-z0-9_~-]*)\/(.*)$ imagen.php?param=$2&src=$1$3 [QSA,L]
#paginas
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*-p([0-9]+)$ interna.php?id=$1 [QSA]
#Intranet
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*-i([0-9]+)$ intranet.php?id=$1 [QSA]
#publicaciones
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*-n([0-9]+)$ publicaciones_detalle.php?id=$1 [QSA]
# Paginas sin extension
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ $1.php [QSA]
# sitemap
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule sitemap.xml sitemap.php [QSA]
# Buscador
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^search$ buscar.php [QSA]
# En caso de no existencia
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ 404.php [QSA]
# Paginas incluidas en el template
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} ^.*\.php$
RewriteRule ^(.*)$ plantilla.php?uri=$1 [QSA]
しかし、私は www.domain.com/contactoアクセスしたとき、私は、例えば、エラーを持っている、それは私にこのエラーがスローされます。
Not Found
The requested URL /contacto was not found on this server.
しかしを私がこのwww.domain.com/contacto.phpのようなURLを変更した場合、それは機能します。
私は下のリストからこのルールは仕事ではないと思いますか?
# Paginas sin extension
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ $1.php [QSA]
なぜ私は間違っているのですか?
これらは私のApache用のロードされたすべてのモジュールです:
そして、これは、/ etc/apache2の/サイト対応の私domain.dev.confファイルです:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/domain/
ServerAlias www.domain.dev
ServerName domain.dev
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/domain>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
RewriteEngine On
</Directory>
</VirtualHost>
でしたApache 2.2上で正常に動作しますが、2.4へのアップグレード後は動作しなくなります。
のhtaccessファイル
を適用した形でのApache 2と2.4の違いはありますが、あなたが
'planntilla.php'ルールブロックの目的は何ですか?現在のところ、 '/ foo'と'/foo'を要求し、要求ファイル名が '/.*。php'であれば、' plantilla.php'に書き直すと意味がありません。 –
Plantilla.phpはテンプレートのようなものです。他のすべてのページはそのファイルにエコーされます – juanpscotto