Question

Rewriting URL's Apache Server Blocks. Links Won't Work Only Homepage

I am unable to get any links other than the homepage to display without getting the following error.

“Not Found The requested URL /albums was not found on this server. Apache/2.4.7 (Ubuntu) Server at example.com Port 443”

I have had the same issue before and spent hours when it ended up being something very simple. I have LetsEncrypt installed. Below are my 000-default.conf, .htaccess, and 000-default-le-ssl.conf. Can someone please show me what I am doing wrong…


<!-- 000-default.conf -->

<VirtualHost *:80>
	    
    ServerName example.com
    Redirect permanent / https://example.com/
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html
    
    ScriptAlias /cgi-bin/ /var/cgi-bin/
        <Directory "/var/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Require all granted
         </Directory>
    
    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all                
    </Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined   
    
</VirtualHost>

<VirtualHost *:80>
    ServerName www.example.com
    Redirect permanent / https://example.com/
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

the following is 000-default-le-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
    
    ServerName example.com
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html
    
    ScriptAlias /cgi-bin/ /var/cgi-bin/
        <Directory "/var/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Require all granted
         </Directory>
    
    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
    
SSLCertificateFile /etc/letsencrypt/live/example.com-0001/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com-0001/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/example.com-0001/chain.pem
</VirtualHost>
</IfModule>

And the .htaccess file

<IfModule mod_rewrite.c>
RewriteEngine On 
RewriteBase /var/www/html
RewriteRule ^ajax/search$ ajax_search.php
RewriteRule ^signup$ signup.php
RewriteRule ^ajax/check_username$ ajax_check_username.php
RewriteRule ^logout$ logout.php
RewriteRule ^login$ login.php
RewriteRule ^lost$ lost.php
RewriteRule ^confirm$ confirm.php
RewriteRule ^mail/inbox$ inbox.php
RewriteRule ^mail/read$ read.php
RewriteRule ^mail/compose$ compose.php
RewriteRule ^mail/outbox$ outbox.php
RewriteRule ^requests$ requests.php
RewriteRule ^videos$ videos.php
RewriteRule ^myvideos$ myvideos.php
RewriteRule ^categories$ categories.php
RewriteRule ^albums$ albums.php
RewriteRule ^community$ community.php
RewriteRule ^users$ users.php
RewriteRule ^resetpassword/(.*) resetpassword.php?code=$1
RewriteRule ^confirmemail/(.*) confirmemail.php?code=$1
RewriteRule ^user/(.*)/(.*)/blog/(.*) memberblog.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/blog memberblog.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/albums/(.*) memberalbums.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/albums memberalbums.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/favorite/photos/(.*) memberfavphotos.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/favorite/photos memberfavphotos.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/favorite/videos/(.*) memberfavvideos.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/favorite/videos memberfavvideos.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/videos/public/(.*) memberpubvideos.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/videos/public memberpubvideos.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/videos/private/(.*) memberprivideos.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/videos/private memberprivideos.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/friends/(.*) memberfriends.php?pid=$1&username=$2&etc=$3
RewriteRule ^user/(.*)/(.*)/friends$ memberfriends.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/subscribers/(.*) membersubscribers.php?pid=$1&username=$2&etc=$3
RewriteRule ^user/(.*)/(.*)/subscribers$ membersubscribers.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/wall memberwall.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/subscriptions/(.*) membersubscriptions.php?pid=$1&username=$2&etc=$3
RewriteRule ^user/(.*)/(.*)/subscriptions$ membersubscriptions.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*)/playlist/(.*) memberplaylist.php?pid=$1&username=$2&page=$3
RewriteRule ^user/(.*)/(.*)/playlist memberplaylist.php?pid=$1&username=$2
RewriteRule ^user/(.*)/(.*) memberprofile.php?pid=$1&username=$2
RewriteRule ^ajax/insert_favorite_photos$ ajax_insert_favorite_photos.php
RewriteRule ^ajax/insert_my_photos$ ajax_insert_my_photos.php
RewriteRule ^ajax/insert_playlist_videos$ ajax_insert_playlist_videos.php
RewriteRule ^ajax/insert_my_videos$ ajax_insert_my_videos.php
RewriteRule ^ajax/insert_favorite_videos$ ajax_insert_favorite_videos.php
RewriteRule ^upload$ upload.php
RewriteRule ^upload/video$ uploadvideo.php
RewriteRule ^upload/photo$ uploadphoto.php
RewriteRule ^edit$ edit.php
RewriteRule ^prefs$ prefs.php
RewriteRule ^avatar$ avatar.php
RewriteRule ^album/edit/(.*) editalbum.php?aid=$1
RewriteRule ^album/addphotos/(.*) addphotosalbum.php?aid=$1
RewriteRule ^album/delete/(.*) deletealbum.php?aid=$1
RewriteRule ^album/slideshow/(.*) slideshow.php?aid=$1
RewriteRule ^album/(.*)/(.*) viewalbum.php?aid=$1&page=$2
RewriteRule ^ajax/album_cover$ ajax_album_cover.php
RewriteRule ^photo/(.*)/(.*) viewphoto.php?pid=$1&page=$2
RewriteRule ^video/(.*)/(.*) playvideo.php?videoid=$1&page=$2
RewriteRule ^ajax/rate_video$ ajax_rate_video.php
RewriteRule ^ajax/rate_photo$ ajax_rate_photo.php
RewriteRule ^ajax/favorite_video$ ajax_favorite_video.php
RewriteRule ^ajax/favorite_photo$ ajax_favorite_photo.php
RewriteRule ^ajax/flag_video$ ajax_flag_video.php
RewriteRule ^ajax/flag_photo$ ajax_flag_photo.php
RewriteRule ^ajax/share_video$ ajax_share_video.php
RewriteRule ^ajax/share_photo$ ajax_share_photo.php
RewriteRule ^ajax/photo_comment$ ajax_photo_comment.php
RewriteRule ^ajax/photo_pagination$ ajax_photo_pagination.php
RewriteRule ^ajax/photo_comment_delete$ ajax_photo_comment_delete.php
RewriteRule ^ajax/video_comment_delete$ ajax_video_comment_delete.php
RewriteRule ^ajax/wall_comment_delete$ ajax_wall_comment_delete.php
RewriteRule ^ajax/report_spam$ ajax_report_spam.php
RewriteRule ^ajax/remove_photo_favorite$ ajax_remove_photo_favorite.php
RewriteRule ^ajax/upload_progress$ ajax_upload_progress.php
RewriteRule ^search$ search.php
RewriteRule ^ajax/related_videos$ ajax_related_videos.php
RewriteRule ^ajax/video_comment$ ajax_video_comment.php
RewriteRule ^ajax/video_pagination$ ajax_video_pagination.php
RewriteRule ^ajax/video_comment_delete$ ajax_video_comment_delete.php
RewriteRule ^ajax/remove_video_playlist$ ajax_remove_video_playlist.php
RewriteRule ^ajax/remove_video_favorite$ ajax_remove_video_favorite.php
RewriteRule ^ajax/wall_comment$ ajax_wall_comment.php
RewriteRule ^ajax/wall_pagination$ ajax_wall_pagination.php
RewriteRule ^ajax/subscribe$ ajax_subscribe.php
RewriteRule ^ajax/unsubscribe$ ajax_unsubscribe.php
RewriteRule ^ajax/block_user$ ajax_block_user.php
RewriteRule ^ajax/unblock_user$ ajax_unblock_user.php
RewriteRule ^ajax/report_user$ ajax_report_user.php
RewriteRule ^ajax/invite_friend$ ajax_invite_friend.php
RewriteRule ^ajax/send_message$ ajax_send_message.php
RewriteRule ^ajax/rate_user$ ajax_rate_user.php
RewriteRule ^ajax/remove_friend$ ajax_remove_friend.php
RewriteRule ^ajax/accept_friend$ ajax_accept_friend.php
RewriteRule ^ajax/reject_friend$ ajax_reject_friend.php
RewriteRule ^ajax/category_videos$ ajax_category_videos.php
RewriteRule ^ajax/users$ ajax_users.php
RewriteRule ^ajax/blog_comment$ ajax_blog_comment.php
RewriteRule ^ajax/blog_pagination$ ajax_blog_pagination.php
RewriteRule ^ajax/blog_comment_delete$ ajax_blog_comment_delete.php
RewriteRule ^blog/add$ blog_add.php
RewriteRule ^blog/edit/(.*)/(.*) blog_edit.php?bid=$1&title=$2
RewriteRule ^blog/delete/(.*) blog_delete.php?bid=$1
RewriteRule ^blog/(.*)/(.*) viewblog.php?bid=$1&title=$2
RewriteRule ^ajax/blog_preview$ ajax_blog_preview.php
RewriteRule ^blogs$ blogs.php
RewriteRule ^invite$ invite.php
RewriteRule ^feedback$ feedback.php
RewriteRule ^static/faq$ faq.php
RewriteRule ^static/terms$ terms.php
RewriteRule ^static/privacy$ privacy.php
RewriteRule ^static/dmca$ dmca.php
RewriteRule ^static/_2257$ 2257.php
RewriteRule ^static/webmasters$ webmasters.php
RewriteRule ^static/advertise$ advertise.php
RewriteRule ^notices$ notices.php
RewriteRule ^notice/(.*)/(.*) viewnotice.php?nid=$1&title=$2
RewriteRule ^ajax/notice_comment$ ajax_notice_comment.php
RewriteRule ^ajax/notice_pagination$ ajax_notice_pagination.php
RewriteRule ^ajax/notice_comment_delete$ ajax_notice_comment_delete.php
RewriteRule ^blocks$ blocks.php
RewriteRule ^delete$ delete.php
RewriteRule ^download/video/(.*)/(.*) downloadvideo.php?VIDEOID=$1&title=$2
RewriteRule ^rss$ rss.php
RewriteRule ^photos$ photos.php
</IfModule>

<IfModule mod_security.c> 
   # Turn off mod_security filtering. 
   SecFilterEngine Off 

   # The below probably isn't needed, 
   # but better safe than sorry. 
   SecFilterScanPOST Off 
</IfModule>

Subscribe
Share

Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

I was able to figure out what I was doing wrong and everything is working perfectly now. Cheers.